wcgw 5.4.4__tar.gz → 5.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of wcgw might be problematic. Click here for more details.
- {wcgw-5.4.4 → wcgw-5.5.0}/.vscode/settings.json +7 -7
- {wcgw-5.4.4 → wcgw-5.5.0}/PKG-INFO +28 -7
- {wcgw-5.4.4 → wcgw-5.5.0}/README.md +26 -6
- {wcgw-5.4.4 → wcgw-5.5.0}/pyproject.toml +2 -1
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/bash_state/bash_state.py +321 -111
- wcgw-5.5.0/src/wcgw/client/diff-instructions.txt +73 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/mcp_server/__init__.py +4 -1
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/mcp_server/server.py +2 -2
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/modes.py +3 -2
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/tool_prompts.py +3 -1
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/tools.py +44 -15
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/types_.py +13 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw_cli/anthropic_client.py +1 -1
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw_cli/openai_client.py +1 -1
- wcgw-5.5.0/tests/test_bg_commands.py +239 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/tests/test_tools.py +7 -6
- {wcgw-5.4.4 → wcgw-5.5.0}/uv.lock +24 -1
- wcgw-5.4.4/src/wcgw/client/diff-instructions.txt +0 -71
- {wcgw-5.4.4 → wcgw-5.5.0}/.github/workflows/python-publish.yml +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/.github/workflows/python-tests.yml +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/.github/workflows/python-types.yml +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/.gitignore +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/.gitmodules +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/.python-version +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/CLAUDE.md +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/Dockerfile +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/LICENSE +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/__init__.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/__init__.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/bash_state/parser/__init__.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/bash_state/parser/bash_statement_parser.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/common.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/encoder/__init__.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/file_ops/diff_edit.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/file_ops/extensions.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/file_ops/search_replace.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/mcp_server/Readme.md +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/memory.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/repo_ops/display_tree.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/repo_ops/file_stats.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/repo_ops/path_prob.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/repo_ops/paths_model.vocab +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/repo_ops/paths_tokens.model +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/repo_ops/repo_context.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/client/schema_generator.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw/py.typed +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw_cli/__init__.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw_cli/__main__.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw_cli/cli.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/src/wcgw_cli/openai_utils.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/static/claude-ss.jpg +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/static/computer-use.jpg +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/static/example.jpg +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/static/rocket-icon.png +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/static/ss1.png +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/static/workflow-demo.gif +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/tests/test_bash_parser.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/tests/test_bash_parser_complex.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/tests/test_edit.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/tests/test_file_range_tracking.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/tests/test_mcp_server.py +0 -0
- {wcgw-5.4.4 → wcgw-5.5.0}/tests/test_readfiles.py +0 -0
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
"mypy-type-checker.args": [
|
|
11
11
|
"--enable-incomplete-feature=NewGenericSyntax",
|
|
12
12
|
"--strict",
|
|
13
|
-
|
|
14
13
|
],
|
|
15
14
|
"editor.formatOnSave": true,
|
|
16
15
|
"editor.renderWhitespace": "selection",
|
|
17
16
|
"[python]": {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
17
|
+
"editor.defaultFormatter": "charliermarsh.ruff",
|
|
18
|
+
"editor.codeActionsOnSave": {
|
|
19
|
+
"source.fixAll": "always",
|
|
20
|
+
"source.organizeImports": "always",
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"python-envs.pythonProjects": []
|
|
24
24
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wcgw
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.5.0
|
|
4
4
|
Summary: Shell and coding agent for Claude and other mcp clients
|
|
5
5
|
Project-URL: Homepage, https://github.com/rusiaaman/wcgw
|
|
6
6
|
Author-email: Aman Rusia <gapypi@arcfu.com>
|
|
@@ -26,6 +26,7 @@ Requires-Dist: tree-sitter-bash>=0.23.3
|
|
|
26
26
|
Requires-Dist: tree-sitter>=0.24.0
|
|
27
27
|
Requires-Dist: typer>=0.12.5
|
|
28
28
|
Requires-Dist: uvicorn>=0.31.0
|
|
29
|
+
Requires-Dist: wcmatch>=10.1
|
|
29
30
|
Requires-Dist: websockets>=13.1
|
|
30
31
|
Description-Content-Type: text/markdown
|
|
31
32
|
|
|
@@ -48,6 +49,8 @@ wcgw is an MCP server with tightly integrated shell and code editing tools.
|
|
|
48
49
|
|
|
49
50
|
## Updates
|
|
50
51
|
|
|
52
|
+
- [6 Oct 2025] Model can now run multiple commands in background. ZSH is now a supported shell. Multiplexing improvements.
|
|
53
|
+
|
|
51
54
|
- [27 Apr 2025] Removed support for GPTs over relay server. Only MCP server is supported in version >= 5.
|
|
52
55
|
|
|
53
56
|
- [24 Mar 2025] Improved writing and editing experience for sonnet 3.7, CLAUDE.md gets loaded automatically.
|
|
@@ -76,16 +79,16 @@ wcgw is an MCP server with tightly integrated shell and code editing tools.
|
|
|
76
79
|
- File edit has spacing tolerant matching, with warning on issues like indentation mismatch. If there's no match, the closest match is returned to the AI to fix its mistakes.
|
|
77
80
|
- Using Aider-like search and replace, which has better performance than tool call based search and replace.
|
|
78
81
|
- ⚡ **Shell optimizations**:
|
|
79
|
-
- Only one command is allowed to be run at a time, simplifying management and avoiding rogue processes. There's only single shell instance at any point of time.
|
|
80
82
|
- Current working directory is always returned after any shell command to prevent AI from getting lost.
|
|
81
83
|
- Command polling exits after a quick timeout to avoid slow feedback. However, status checking has wait tolerance based on fresh output streaming from a command. Both of these approach combined provides a good shell interaction experience.
|
|
84
|
+
- Supports multiple concurrent background commands alongside the main interactive shell.
|
|
82
85
|
- ⚡ **Saving repo context in a single file**: Task checkpointing using "ContextSave" tool saves detailed context in a single file. Tasks can later be resumed in a new chat asking "Resume `task id`". The saved file can be used to do other kinds of knowledge transfer, such as taking help from another AI.
|
|
83
86
|
- ⚡ **Easily switch between various modes**:
|
|
84
87
|
- Ask it to run in 'architect' mode for planning. Inspired by adier's architect mode, work with Claude to come up with a plan first. Leads to better accuracy and prevents premature file editing.
|
|
85
88
|
- Ask it to run in 'code-writer' mode for code editing and project building. You can provide specific paths with wild card support to prevent other files getting edited.
|
|
86
89
|
- By default it runs in 'wcgw' mode that has no restrictions and full authorisation.
|
|
87
90
|
- More details in [Modes section](#modes)
|
|
88
|
-
- ⚡ **Runs in multiplex terminal**
|
|
91
|
+
- ⚡ **Runs in multiplex terminal** Use [vscode extension](https://marketplace.visualstudio.com/items?itemName=AmanRusia.wcgw) or run `screen -x` to attach to the terminal that the AI runs commands on. See history or interrupt process or interact with the same terminal that AI uses.
|
|
89
92
|
- ⚡ **Automatically load CLAUDE.md/AGENTS.md** Loads "CLAUDE.md" or "AGENTS.md" file in project root and sends as instructions during initialisation. Instructions in a global "~/.wcgw/CLAUDE.md" or "~/.wcgw/AGENTS.md" file are loaded and added along with project specific CLAUDE.md. The file name is case sensitive. CLAUDE.md is attached if it's present otherwise AGENTS.md is attached.
|
|
90
93
|
|
|
91
94
|
## Top use cases examples
|
|
@@ -117,8 +120,8 @@ Then create or update `claude_desktop_config.json` (~/Library/Application Suppor
|
|
|
117
120
|
{
|
|
118
121
|
"mcpServers": {
|
|
119
122
|
"wcgw": {
|
|
120
|
-
"command": "
|
|
121
|
-
"args": ["
|
|
123
|
+
"command": "uvx",
|
|
124
|
+
"args": ["wcgw@latest"]
|
|
122
125
|
}
|
|
123
126
|
}
|
|
124
127
|
}
|
|
@@ -126,6 +129,21 @@ Then create or update `claude_desktop_config.json` (~/Library/Application Suppor
|
|
|
126
129
|
|
|
127
130
|
Then restart claude app.
|
|
128
131
|
|
|
132
|
+
**Optional: Force a specific shell**
|
|
133
|
+
|
|
134
|
+
To use a specific shell (bash or zsh), add the `--shell` argument:
|
|
135
|
+
|
|
136
|
+
```json
|
|
137
|
+
{
|
|
138
|
+
"mcpServers": {
|
|
139
|
+
"wcgw": {
|
|
140
|
+
"command": "uvx",
|
|
141
|
+
"args": ["wcgw@latest", "--shell", "/bin/bash"]
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
129
147
|
_If there's an error in setting up_
|
|
130
148
|
|
|
131
149
|
- If there's an error like "uv ENOENT", make sure `uv` is installed. Then run 'which uv' in the terminal, and use its output in place of "uv" in the configuration.
|
|
@@ -147,7 +165,7 @@ Then add or update the claude config file `%APPDATA%\Claude\claude_desktop_confi
|
|
|
147
165
|
"mcpServers": {
|
|
148
166
|
"wcgw": {
|
|
149
167
|
"command": "wsl.exe",
|
|
150
|
-
"args": ["
|
|
168
|
+
"args": ["uvx", "wcgw@latest"]
|
|
151
169
|
}
|
|
152
170
|
}
|
|
153
171
|
}
|
|
@@ -209,6 +227,9 @@ Note: in code-writer mode either all commands are allowed or none are allowed fo
|
|
|
209
227
|
|
|
210
228
|
#### Attach to the working terminal to investigate
|
|
211
229
|
|
|
230
|
+
NEW: the [vscode extension](https://marketplace.visualstudio.com/items?itemName=AmanRusia.wcgw) now automatically attach the running terminal
|
|
231
|
+
if workspace path matches.
|
|
232
|
+
|
|
212
233
|
If you've `screen` command installed, wcgw runs on a screen instance automatically. If you've started wcgw mcp server, you can list the screen sessions:
|
|
213
234
|
|
|
214
235
|
`screen -ls`
|
|
@@ -219,7 +240,7 @@ You can then attach to the session using `screen -x 93358.wcgw.235521`
|
|
|
219
240
|
|
|
220
241
|
You may interrupt any running command safely.
|
|
221
242
|
|
|
222
|
-
You can interact with the terminal
|
|
243
|
+
You can interact with the terminal safely, for example for entering passwords, or entering some text. (Warning: If you run a new command, any new LLM command will interrupt it.)
|
|
223
244
|
|
|
224
245
|
You shouldn't exit the session using `exit `or Ctrl-d, instead you should use `ctrl+a+d` to safely detach without destroying the screen session.
|
|
225
246
|
|
|
@@ -17,6 +17,8 @@ wcgw is an MCP server with tightly integrated shell and code editing tools.
|
|
|
17
17
|
|
|
18
18
|
## Updates
|
|
19
19
|
|
|
20
|
+
- [6 Oct 2025] Model can now run multiple commands in background. ZSH is now a supported shell. Multiplexing improvements.
|
|
21
|
+
|
|
20
22
|
- [27 Apr 2025] Removed support for GPTs over relay server. Only MCP server is supported in version >= 5.
|
|
21
23
|
|
|
22
24
|
- [24 Mar 2025] Improved writing and editing experience for sonnet 3.7, CLAUDE.md gets loaded automatically.
|
|
@@ -45,16 +47,16 @@ wcgw is an MCP server with tightly integrated shell and code editing tools.
|
|
|
45
47
|
- File edit has spacing tolerant matching, with warning on issues like indentation mismatch. If there's no match, the closest match is returned to the AI to fix its mistakes.
|
|
46
48
|
- Using Aider-like search and replace, which has better performance than tool call based search and replace.
|
|
47
49
|
- ⚡ **Shell optimizations**:
|
|
48
|
-
- Only one command is allowed to be run at a time, simplifying management and avoiding rogue processes. There's only single shell instance at any point of time.
|
|
49
50
|
- Current working directory is always returned after any shell command to prevent AI from getting lost.
|
|
50
51
|
- Command polling exits after a quick timeout to avoid slow feedback. However, status checking has wait tolerance based on fresh output streaming from a command. Both of these approach combined provides a good shell interaction experience.
|
|
52
|
+
- Supports multiple concurrent background commands alongside the main interactive shell.
|
|
51
53
|
- ⚡ **Saving repo context in a single file**: Task checkpointing using "ContextSave" tool saves detailed context in a single file. Tasks can later be resumed in a new chat asking "Resume `task id`". The saved file can be used to do other kinds of knowledge transfer, such as taking help from another AI.
|
|
52
54
|
- ⚡ **Easily switch between various modes**:
|
|
53
55
|
- Ask it to run in 'architect' mode for planning. Inspired by adier's architect mode, work with Claude to come up with a plan first. Leads to better accuracy and prevents premature file editing.
|
|
54
56
|
- Ask it to run in 'code-writer' mode for code editing and project building. You can provide specific paths with wild card support to prevent other files getting edited.
|
|
55
57
|
- By default it runs in 'wcgw' mode that has no restrictions and full authorisation.
|
|
56
58
|
- More details in [Modes section](#modes)
|
|
57
|
-
- ⚡ **Runs in multiplex terminal**
|
|
59
|
+
- ⚡ **Runs in multiplex terminal** Use [vscode extension](https://marketplace.visualstudio.com/items?itemName=AmanRusia.wcgw) or run `screen -x` to attach to the terminal that the AI runs commands on. See history or interrupt process or interact with the same terminal that AI uses.
|
|
58
60
|
- ⚡ **Automatically load CLAUDE.md/AGENTS.md** Loads "CLAUDE.md" or "AGENTS.md" file in project root and sends as instructions during initialisation. Instructions in a global "~/.wcgw/CLAUDE.md" or "~/.wcgw/AGENTS.md" file are loaded and added along with project specific CLAUDE.md. The file name is case sensitive. CLAUDE.md is attached if it's present otherwise AGENTS.md is attached.
|
|
59
61
|
|
|
60
62
|
## Top use cases examples
|
|
@@ -86,8 +88,8 @@ Then create or update `claude_desktop_config.json` (~/Library/Application Suppor
|
|
|
86
88
|
{
|
|
87
89
|
"mcpServers": {
|
|
88
90
|
"wcgw": {
|
|
89
|
-
"command": "
|
|
90
|
-
"args": ["
|
|
91
|
+
"command": "uvx",
|
|
92
|
+
"args": ["wcgw@latest"]
|
|
91
93
|
}
|
|
92
94
|
}
|
|
93
95
|
}
|
|
@@ -95,6 +97,21 @@ Then create or update `claude_desktop_config.json` (~/Library/Application Suppor
|
|
|
95
97
|
|
|
96
98
|
Then restart claude app.
|
|
97
99
|
|
|
100
|
+
**Optional: Force a specific shell**
|
|
101
|
+
|
|
102
|
+
To use a specific shell (bash or zsh), add the `--shell` argument:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"mcpServers": {
|
|
107
|
+
"wcgw": {
|
|
108
|
+
"command": "uvx",
|
|
109
|
+
"args": ["wcgw@latest", "--shell", "/bin/bash"]
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
```
|
|
114
|
+
|
|
98
115
|
_If there's an error in setting up_
|
|
99
116
|
|
|
100
117
|
- If there's an error like "uv ENOENT", make sure `uv` is installed. Then run 'which uv' in the terminal, and use its output in place of "uv" in the configuration.
|
|
@@ -116,7 +133,7 @@ Then add or update the claude config file `%APPDATA%\Claude\claude_desktop_confi
|
|
|
116
133
|
"mcpServers": {
|
|
117
134
|
"wcgw": {
|
|
118
135
|
"command": "wsl.exe",
|
|
119
|
-
"args": ["
|
|
136
|
+
"args": ["uvx", "wcgw@latest"]
|
|
120
137
|
}
|
|
121
138
|
}
|
|
122
139
|
}
|
|
@@ -178,6 +195,9 @@ Note: in code-writer mode either all commands are allowed or none are allowed fo
|
|
|
178
195
|
|
|
179
196
|
#### Attach to the working terminal to investigate
|
|
180
197
|
|
|
198
|
+
NEW: the [vscode extension](https://marketplace.visualstudio.com/items?itemName=AmanRusia.wcgw) now automatically attach the running terminal
|
|
199
|
+
if workspace path matches.
|
|
200
|
+
|
|
181
201
|
If you've `screen` command installed, wcgw runs on a screen instance automatically. If you've started wcgw mcp server, you can list the screen sessions:
|
|
182
202
|
|
|
183
203
|
`screen -ls`
|
|
@@ -188,7 +208,7 @@ You can then attach to the session using `screen -x 93358.wcgw.235521`
|
|
|
188
208
|
|
|
189
209
|
You may interrupt any running command safely.
|
|
190
210
|
|
|
191
|
-
You can interact with the terminal
|
|
211
|
+
You can interact with the terminal safely, for example for entering passwords, or entering some text. (Warning: If you run a new command, any new LLM command will interrupt it.)
|
|
192
212
|
|
|
193
213
|
You shouldn't exit the session using `exit `or Ctrl-d, instead you should use `ctrl+a+d` to safely detach without destroying the screen session.
|
|
194
214
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
authors = [{ name = "Aman Rusia", email = "gapypi@arcfu.com" }]
|
|
3
3
|
name = "wcgw"
|
|
4
|
-
version = "5.
|
|
4
|
+
version = "5.5.0"
|
|
5
5
|
description = "Shell and coding agent for Claude and other mcp clients"
|
|
6
6
|
readme = "README.md"
|
|
7
7
|
requires-python = ">=3.11"
|
|
@@ -27,6 +27,7 @@ dependencies = [
|
|
|
27
27
|
"tree-sitter>=0.24.0",
|
|
28
28
|
"tree-sitter-bash>=0.23.3",
|
|
29
29
|
"mcp>=1.7.0",
|
|
30
|
+
"wcmatch>=10.1",
|
|
30
31
|
]
|
|
31
32
|
|
|
32
33
|
[project.urls]
|