wcgw 5.4.5__tar.gz → 5.5.1__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.

Files changed (62) hide show
  1. {wcgw-5.4.5 → wcgw-5.5.1}/.vscode/settings.json +7 -7
  2. {wcgw-5.4.5 → wcgw-5.5.1}/PKG-INFO +27 -7
  3. {wcgw-5.4.5 → wcgw-5.5.1}/README.md +26 -6
  4. {wcgw-5.4.5 → wcgw-5.5.1}/pyproject.toml +1 -1
  5. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/bash_state/bash_state.py +323 -113
  6. wcgw-5.5.1/src/wcgw/client/diff-instructions.txt +73 -0
  7. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/mcp_server/__init__.py +4 -1
  8. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/mcp_server/server.py +2 -2
  9. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/modes.py +3 -2
  10. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/tool_prompts.py +4 -2
  11. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/tools.py +39 -10
  12. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/types_.py +13 -0
  13. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw_cli/anthropic_client.py +1 -1
  14. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw_cli/openai_client.py +1 -1
  15. wcgw-5.5.1/tests/test_bg_commands.py +239 -0
  16. {wcgw-5.4.5 → wcgw-5.5.1}/tests/test_tools.py +7 -6
  17. {wcgw-5.4.5 → wcgw-5.5.1}/uv.lock +1 -1
  18. wcgw-5.4.5/src/wcgw/client/diff-instructions.txt +0 -71
  19. {wcgw-5.4.5 → wcgw-5.5.1}/.github/workflows/python-publish.yml +0 -0
  20. {wcgw-5.4.5 → wcgw-5.5.1}/.github/workflows/python-tests.yml +0 -0
  21. {wcgw-5.4.5 → wcgw-5.5.1}/.github/workflows/python-types.yml +0 -0
  22. {wcgw-5.4.5 → wcgw-5.5.1}/.gitignore +0 -0
  23. {wcgw-5.4.5 → wcgw-5.5.1}/.gitmodules +0 -0
  24. {wcgw-5.4.5 → wcgw-5.5.1}/.python-version +0 -0
  25. {wcgw-5.4.5 → wcgw-5.5.1}/CLAUDE.md +0 -0
  26. {wcgw-5.4.5 → wcgw-5.5.1}/Dockerfile +0 -0
  27. {wcgw-5.4.5 → wcgw-5.5.1}/LICENSE +0 -0
  28. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/__init__.py +0 -0
  29. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/__init__.py +0 -0
  30. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/bash_state/parser/__init__.py +0 -0
  31. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/bash_state/parser/bash_statement_parser.py +0 -0
  32. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/common.py +0 -0
  33. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/encoder/__init__.py +0 -0
  34. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/file_ops/diff_edit.py +0 -0
  35. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/file_ops/extensions.py +0 -0
  36. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/file_ops/search_replace.py +0 -0
  37. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/mcp_server/Readme.md +0 -0
  38. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/memory.py +0 -0
  39. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/repo_ops/display_tree.py +0 -0
  40. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/repo_ops/file_stats.py +0 -0
  41. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/repo_ops/path_prob.py +0 -0
  42. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/repo_ops/paths_model.vocab +0 -0
  43. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/repo_ops/paths_tokens.model +0 -0
  44. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/repo_ops/repo_context.py +0 -0
  45. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/client/schema_generator.py +0 -0
  46. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw/py.typed +0 -0
  47. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw_cli/__init__.py +0 -0
  48. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw_cli/__main__.py +0 -0
  49. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw_cli/cli.py +0 -0
  50. {wcgw-5.4.5 → wcgw-5.5.1}/src/wcgw_cli/openai_utils.py +0 -0
  51. {wcgw-5.4.5 → wcgw-5.5.1}/static/claude-ss.jpg +0 -0
  52. {wcgw-5.4.5 → wcgw-5.5.1}/static/computer-use.jpg +0 -0
  53. {wcgw-5.4.5 → wcgw-5.5.1}/static/example.jpg +0 -0
  54. {wcgw-5.4.5 → wcgw-5.5.1}/static/rocket-icon.png +0 -0
  55. {wcgw-5.4.5 → wcgw-5.5.1}/static/ss1.png +0 -0
  56. {wcgw-5.4.5 → wcgw-5.5.1}/static/workflow-demo.gif +0 -0
  57. {wcgw-5.4.5 → wcgw-5.5.1}/tests/test_bash_parser.py +0 -0
  58. {wcgw-5.4.5 → wcgw-5.5.1}/tests/test_bash_parser_complex.py +0 -0
  59. {wcgw-5.4.5 → wcgw-5.5.1}/tests/test_edit.py +0 -0
  60. {wcgw-5.4.5 → wcgw-5.5.1}/tests/test_file_range_tracking.py +0 -0
  61. {wcgw-5.4.5 → wcgw-5.5.1}/tests/test_mcp_server.py +0 -0
  62. {wcgw-5.4.5 → wcgw-5.5.1}/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
- "editor.defaultFormatter": "charliermarsh.ruff",
19
- "editor.codeActionsOnSave": {
20
- "source.fixAll": "always",
21
- "source.organizeImports": "always",
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.4.5
3
+ Version: 5.5.1
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>
@@ -49,6 +49,8 @@ wcgw is an MCP server with tightly integrated shell and code editing tools.
49
49
 
50
50
  ## Updates
51
51
 
52
+ - [6 Oct 2025] Model can now run multiple commands in background. ZSH is now a supported shell. Multiplexing improvements.
53
+
52
54
  - [27 Apr 2025] Removed support for GPTs over relay server. Only MCP server is supported in version >= 5.
53
55
 
54
56
  - [24 Mar 2025] Improved writing and editing experience for sonnet 3.7, CLAUDE.md gets loaded automatically.
@@ -77,16 +79,16 @@ wcgw is an MCP server with tightly integrated shell and code editing tools.
77
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.
78
80
  - Using Aider-like search and replace, which has better performance than tool call based search and replace.
79
81
  - ⚡ **Shell optimizations**:
80
- - 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.
81
82
  - Current working directory is always returned after any shell command to prevent AI from getting lost.
82
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.
83
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.
84
86
  - ⚡ **Easily switch between various modes**:
85
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.
86
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.
87
89
  - By default it runs in 'wcgw' mode that has no restrictions and full authorisation.
88
90
  - More details in [Modes section](#modes)
89
- - ⚡ **Runs in multiplex terminal** 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.
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.
90
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.
91
93
 
92
94
  ## Top use cases examples
@@ -118,8 +120,8 @@ Then create or update `claude_desktop_config.json` (~/Library/Application Suppor
118
120
  {
119
121
  "mcpServers": {
120
122
  "wcgw": {
121
- "command": "uv",
122
- "args": ["tool", "run", "--python", "3.12", "wcgw"]
123
+ "command": "uvx",
124
+ "args": ["wcgw@latest"]
123
125
  }
124
126
  }
125
127
  }
@@ -127,6 +129,21 @@ Then create or update `claude_desktop_config.json` (~/Library/Application Suppor
127
129
 
128
130
  Then restart claude app.
129
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
+
130
147
  _If there's an error in setting up_
131
148
 
132
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.
@@ -148,7 +165,7 @@ Then add or update the claude config file `%APPDATA%\Claude\claude_desktop_confi
148
165
  "mcpServers": {
149
166
  "wcgw": {
150
167
  "command": "wsl.exe",
151
- "args": ["uv", "tool", "run", "--python", "3.12", "wcgw"]
168
+ "args": ["uvx", "wcgw@latest"]
152
169
  }
153
170
  }
154
171
  }
@@ -210,6 +227,9 @@ Note: in code-writer mode either all commands are allowed or none are allowed fo
210
227
 
211
228
  #### Attach to the working terminal to investigate
212
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
+
213
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:
214
234
 
215
235
  `screen -ls`
@@ -220,7 +240,7 @@ You can then attach to the session using `screen -x 93358.wcgw.235521`
220
240
 
221
241
  You may interrupt any running command safely.
222
242
 
223
- You can interact with the terminal but beware that the AI might be running in parallel and it may conflict with what you're doing. It's recommended to keep your interactions to minimum.
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.)
224
244
 
225
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.
226
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** 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.
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": "uv",
90
- "args": ["tool", "run", "--python", "3.12", "wcgw"]
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": ["uv", "tool", "run", "--python", "3.12", "wcgw"]
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 but beware that the AI might be running in parallel and it may conflict with what you're doing. It's recommended to keep your interactions to minimum.
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.5"
4
+ version = "5.5.1"
5
5
  description = "Shell and coding agent for Claude and other mcp clients"
6
6
  readme = "README.md"
7
7
  requires-python = ">=3.11"