Catalyst Code, or CatCode, is an open-source coding-agent harness that runs on your own machine. Use it from a terminal or browser with cloud APIs, local models, self-hosted gateways, and OpenAI- or Anthropic-compatible providers.
Many coding agents lock you into one provider, require a hosted account, or hide how tools and agents operate. CatCode gives you control over the models, workspace, tools, approval rules, plugins, memory, and subagents used for each task. CatCode itself is self-hosted, and model requests are sent only to the provider endpoint you configure.
- Use different providers and models without changing your coding workflow.
- Approve destructive actions before files or commands are changed.
- Keep agents inside the selected workspace with path-confinement protections.
- Delegate work to subagents for research, planning, implementation, and review.
- Choose your interface with both terminal and browser applications.
- Extend the harness with plugins, hooks, skills, custom tools, and provider integrations.
- Recover and continue work with persistent sessions, checkpoints, memory, and context compaction.
Prebuilt releases are available for Linux, macOS, and Windows. You do not need Rust, Go, or another compiler unless you are building CatCode from source.
Choose either the browser interface or the terminal interface.
The browser interface is the recommended installation for most users.
It installs:
- The
catcodeterminal application - The CatCode core
- The browser frontend
- A background service for the frontend
The browser frontend is a single Rust binary. No Node or Bun runtime is required.
curl -fsSL https://raw.githubusercontent.com/catalystctl/catcode/refs/heads/master/install-web.sh | bashAfter installation, open:
http://localhost:49283
To keep the frontend available only from the local machine:
curl -fsSL https://raw.githubusercontent.com/catalystctl/catcode/refs/heads/master/install-web.sh \
| bash -s -- --expose localTo use another port:
curl -fsSL https://raw.githubusercontent.com/catalystctl/catcode/refs/heads/master/install-web.sh \
| bash -s -- --port 8080Open PowerShell (Windows Terminal, the PowerShell app, or classic PowerShell) and run:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/catalystctl/catcode/refs/heads/master/install.ps1))) -WithWebAfter installation, open:
http://localhost:49283
To install the frontend for local access only:
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/catalystctl/catcode/refs/heads/master/install.ps1))) -WithWeb -Expose localUse this installation when you only want the terminal application.
curl -fsSL https://raw.githubusercontent.com/catalystctl/catcode/refs/heads/master/install.sh \
| bash -s -- --installOpen PowerShell (Windows Terminal, the PowerShell app, or classic PowerShell) and run:
irm https://raw.githubusercontent.com/catalystctl/catcode/refs/heads/master/install.ps1 | iexSelect the terminal installation from the installer menu.
After installation, open a new terminal window (PowerShell, Command Prompt, or Windows Terminal) so the updated user PATH is loaded. catcode.exe works from CMD as well as PowerShell once PATH reloads — no extra shim is required.
The agent's
bashtool on Windows uses PowerShell by default (pwshif installed, otherwise Windows PowerShell). With Microsandbox enabled it runs Linux bash in the guest instead. Optional override:CATALYST_CODE_SHELL(e.g. Git Bash path, orcmd.exe). Chat, file editing, search, and other native tools work without any extra shell install.
macOS users can install the terminal application from the CatCode Homebrew tap:
brew tap catalystctl/catcode
brew install catcodeUpgrade it later with:
brew upgrade catcodeInstallers, standalone executables, MSI packages, DMG images, and AppImages are also available from the GitHub Releases page.
Open a terminal inside the project you want CatCode to work on:
cd /path/to/your/project
catcodeOnce CatCode opens:
- Run
/loginand select a provider. - Run
/modeland select a model. - Describe what you want the agent to do.
Example:
Review this project, explain how it is structured, and identify the most important bugs to fix.
CatCode uses the directory where it was launched as the workspace. File operations are confined to that workspace unless you explicitly change the configuration.
| Command | Description |
|---|---|
/login |
Add or select a model provider |
/model |
View and switch models |
/approval |
Configure when tool actions require approval |
/settings |
Open CatCode settings |
/goal |
Start a larger planned task using multiple agents |
/help |
Display all available commands |
You can also run shell commands directly from the terminal interface:
!git status
Use two exclamation marks when you do not want the command output added to the model context:
!!clear
CatCode includes provider presets and supports additional providers through plugins.
Built-in presets currently include:
- Umans
- OpenCode Go
- OpenRouter
- DeepSeek
You can also connect compatible local servers, gateways, and custom endpoints. Use /login inside CatCode to configure a provider.
Environment variables may be used for API keys so secrets do not need to be entered into the interface.
CatCode provides several layers of protection while an agent works:
- Workspace path confinement
- Approval prompts for destructive tools
- Restricted-path protection
- Filesystem checkpoints
- Optional operating-system sandboxing
- Tool and session logs
- Configurable network access
The default approval mode asks before destructive operations. Review commands and file changes before approving them, especially when working in an important repository.
Update the terminal application with:
catcode --updateWhen the browser frontend was installed through the CatCode installer, the update command also refreshes its installed components and restarts the service.
Updates can also be started from:
Settings → About → Update CLI + frontend
curl -fsSL https://raw.githubusercontent.com/catalystctl/catcode/refs/heads/master/install.sh \
| bash -s -- --uninstall& ([scriptblock]::Create((irm https://raw.githubusercontent.com/catalystctl/catcode/refs/heads/master/install.ps1))) -Uninstallbrew uninstall catcodeMore detailed guides are available in the CatCode documentation, including:
- Installation and configuration
- Commands and keyboard controls
- Model providers
- Tools and approval rules
- Subagents and goal mode
- Memory and skills
- Plugins and custom tools
- Browser frontend deployment
- Architecture and development
Contributions, bug reports, and feature requests are welcome.
Development and build instructions are available in the contributor documentation.
Catalyst Code is distributed under the MIT License.