$git clone https://github.com/rusiaaman/wcgwEmpowering chat applications to code, build and run on your local machine.
| 1 | # Shell and Coding agent for Claude and other mcp clients |
| 2 | |
| 3 | Empowering chat applications to code, build and run on your local machine. |
| 4 | |
| 5 | wcgw is an MCP server with tightly integrated shell and code editing tools. |
| 6 | |
| 7 | > ⚠️ **Warning**: This MCP server provides unfiltered access to your machine's shell and files. It does not restrict LLMs from executing arbitrary commands or making unintended changes. This tool can be misused by attackers or run dangerous commands if the AI hallucinates. Run this repository **only** if you fully understand and accept the risks associated with running AI agents with no restrictions. |
| 8 | |
| 9 | As of 2026 the reason you could use `wcgw` is that it provides fully interactive shell experience that you and the agent both can control (including sending key-strokes). |
| 10 | Combined with the wcgw vscode extension that attaches the agent's shell in your editor, you can get the best agentic shell experience that is out there. |
| 11 | The file editing tricks and the general minimalism also helps agent be more productive. |
| 12 | |
| 13 | |
| 14 | [](https://github.com/rusiaaman/wcgw/actions/workflows/python-tests.yml) |
| 15 | [](https://github.com/rusiaaman/wcgw/actions/workflows/python-types.yml) |
| 16 | [](https://github.com/rusiaaman/wcgw/actions/workflows/python-publish.yml) |
| 17 | [](https://codecov.io/gh/rusiaaman/wcgw) |
| 18 | |
| 19 | ## Demo |
| 20 | |
| 21 |  |
| 22 | |
| 23 | ## Updates |
| 24 | |
| 25 | - [6 Oct 2025] Model can now run multiple commands in background. ZSH is now a supported shell. Multiplexing improvements. |
| 26 | |
| 27 | - [27 Apr 2025] Removed support for GPTs over relay server. Only MCP server is supported in version >= 5. |
| 28 | |
| 29 | - [24 Mar 2025] Improved writing and editing experience for sonnet 3.7, CLAUDE.md gets loaded automatically. |
| 30 | |
| 31 | - [16 Feb 2025] You can now attach to the working terminal that the AI uses. See the "attach-to-terminal" section below. |
| 32 | |
| 33 | - [15 Jan 2025] Modes introduced: architect, code-writer, and all powerful wcgw mode. |
| 34 | |
| 35 | - [8 Jan 2025] Context saving tool for saving relevant file paths along with a description in a single file. Can be used as a task checkpoint or for knowledge transfer. |
| 36 | |
| 37 | - [29 Dec 2024] Syntax checking on file writing and edits is now stable. Made `initialize` tool call useful; sending smart repo structure to claude if any repo is referenced. Large file handling is also now improved. |
| 38 | |
| 39 | - [9 Dec 2024] [Vscode extension to paste context on Claude app](https://marketplace.visualstudio.com/items?itemName=AmanRusia.wcgw) |
| 40 | |
| 41 | ## 🚀 Highlights |
| 42 | |
| 43 | - ⚡ **Create, Execute, Iterate**: Ask claude to keep running compiler checks till all errors are fixed, or ask it to keep checking for the status of a long running command till it's done. |
| 44 | - ⚡ **Large file edit**: Supports large file incremental edits to avoid token limit issues. Smartly selects when to do small edits or large rewrite based on % of change needed. |
| 45 | - ⚡ **Syntax checking on edits**: Reports feedback to the LLM if its edits have any syntax errors, so that it can redo it. |
| 46 | - ⚡ **Interactive Command Handling**: Supports interactive commands using arrow keys, interrupt, and ansi escape sequences. |
| 47 | - ⚡ **File protections**: |
| 48 | - The AI needs to read a file at least once before it's allowed to edit or rewrite it. This avoids accidental overwrites. |
| 49 | - Avoids context filling up while reading very large files. Files get chunked based on token length. |
| 50 | - On initialisation the provided workspace's directory structure is returned after selecting important files (based on .gitignore as well as a statistical approach) |
| 51 | - File edit based on search-replace tries to find correct search block if it has multiple matches based on previous search blocks. Fails otherwise (for corr |