简体中文 | English
A Windows task switcher, desktop workspace manager, and window layout restorer for developers.
ContextSwitcher is an open-source, local-first Windows productivity app for people who work across several tasks at once. Group application windows by task, save their desktop context, and restore the right workspace with a global hotkey instead of finding and arranging every window again.
It is designed for developer workflows that span VS Code, terminals, browsers, File Explorer, documentation, and AI coding agents.
The interface is available in English and Simplified Chinese and can follow the Windows display language.
ContextSwitcher is an early-stage, Windows-only open-source project. Feedback and contributions are welcome.
A task is usually more than one application: an editor, a terminal, documentation, File Explorer, and perhaps an AI agent. ContextSwitcher treats those windows as one resumable context.
Common use cases include:
- A Windows task switcher for moving between coding projects.
- A desktop workspace manager that groups related application windows.
- A window layout saver and restorer for resuming work quickly.
- A task-oriented complement to
Alt+Tabfor heavy multitasking. - An AI coding context manager for parallel agent and terminal workflows.
Core capabilities:
- Bind multiple desktop windows to one task.
- Open the task switcher with
Ctrl+Alt+Space. - Summon the main window at the pointer by pressing
Alttwice. - Restore window positions and remember File Explorer folders.
- Track task status, priority, subtasks, and focused time.
- Rebind a task when a previously bound window has changed.
- Optionally monitor and focus a matching Herdr workspace.
- Keep task data on your computer; the app has no telemetry or cloud sync.
- 64-bit Windows 10 or later
- Python 3.10 or later when running from source
ContextSwitcher uses Windows APIs and does not currently support macOS or Linux.
git clone https://github.com/legendxcheng/ContextSwitcher.git
cd ContextSwitcher
py -3.10 -m venv .venv
.\.venv\Scripts\python -m pip install --upgrade pip
.\.venv\Scripts\python -m pip install -r requirements.txt
.\.venv\Scripts\python main.pyPackaged installers will appear on the GitHub Releases page. If there is no installer there yet, use the source installation above.
- Start ContextSwitcher and select Add Task.
- Name the task and select the windows that belong to it.
- Press
Ctrl+Alt+Spaceto open the task switcher. - Choose a task to restore its windows.
The task-switcher shortcut and its auto-switch delay can be changed in Settings.
Open Settings → Language → Display language and select:
- Follow system
- English (United States)
- 简体中文
The interface updates immediately. Existing installations without a language preference continue to use Simplified Chinese.
Configuration, tasks, backups, and time-tracking data are stored under:
%APPDATA%\ContextSwitcher
ContextSwitcher does not send that data anywhere. Window titles and local paths may appear in saved task data, so review and redact those files before attaching them to a public issue.
Herdr integration is optional. If herdr.exe is installed, ContextSwitcher can associate a task with a Herdr workspace, monitor agent state, focus the relevant terminal, and show notifications when an agent is blocked or finishes. All core window-switching features work without Herdr.
Install the development dependency and run the test suite:
.\.venv\Scripts\python -m pip install -r requirements-dev.txt
.\.venv\Scripts\python -m pytest tests -qBuild a standalone executable:
.\build.batBuild the executable and the Inno Setup installer:
winget install --id JRSoftware.InnoSetup --exact
.\build_installer.batBuild output is written to release\.
Bug reports, feature proposals, translations, and pull requests are welcome. Read CONTRIBUTING.md before submitting a change. For security-sensitive reports, follow SECURITY.md.
ContextSwitcher is available under the MIT License.