You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -27,6 +27,7 @@ limitations under the License.
27
27
* 🔌 **MCP server integration:** Connect any [Model Context Protocol](https://modelcontextprotocol.io) server as a tool source via the `--mcp` CLI flag. Supports both HTTP (Streamable HTTP) and stdio-based servers.
28
28
* 👁️ **Image loading:** Agents can load and visually inspect image files (plots, screenshots, diagrams) via the built-in `load_image` tool — always available, no flags needed.
29
29
* 🎨 **Image tools:** Visual image diffing (`diff_images`), OCR text extraction from images (`screen_ocr`), and a canvas for drawing shapes, text, and annotations (`canvas_create`, `canvas_draw`) — always available.
30
+
* 🖵 **Tmux multi-screen:** Agents can create and operate multiple independent shell sessions concurrently via tmux (`--tmux` flag or `BPSA_TMUX=1`). Run builds, servers, and tests in parallel across named screen sessions.
30
31
* 🎤 **Dictation input:** Dictate prompts via microphone using Whisper or ElevenLabs transcription (`/dictation` command, requires `BPSA_DICTATION_TRANSCRIBER` env var).
31
32
* ⚡ **Native Python execution:** Execute Python code natively via `exec` for unrestricted processing.
32
33
* 🌍 **Multi-language support:** Code in multiple languages beyond Python (Pascal, PHP, C++, Java and more).
@@ -94,6 +95,7 @@ $ bpsa --load-instructions # Load CLAUDE.md, AGENTS.md, etc. at startup
The `--tmux` flag (or `BPSA_TMUX=1` env var) enables tools that let the agent create and operate multiple independent shell sessions concurrently via tmux. This is useful for running long-running processes (servers, builds, file watchers) in parallel while the agent continues other work.
206
+
207
+
**Requires:**`tmux` installed on the system.
208
+
209
+
```bash
210
+
bpsa --tmux
211
+
212
+
# Or via environment variable:
213
+
export BPSA_TMUX=1
214
+
bpsa
215
+
```
216
+
217
+
### Available Tools
218
+
219
+
| Tool | Description |
220
+
|------|-------------|
221
+
|`tmux_create(session_name, command?)`| Create a new named screen session (default command: `bash`) |
222
+
|`tmux_send(session_name, text, press_enter?)`| Send keystrokes to a session (default: presses Enter after text) |
223
+
|`tmux_read(session_name, lines?)`| Read the current screen content / scrollback (default: 100 lines, max: 2000) |
224
+
|`tmux_list()`| List all active agent screen sessions |
225
+
|`tmux_destroy(session_name)`| Kill a session and all its processes |
226
+
|`tmux_wait(session_name, pattern, timeout?, interval?)`| Poll until a text pattern appears (default: 60s timeout, 1s interval) |
227
+
228
+
### Example Agent Workflow
229
+
230
+
```
231
+
tmux_create("server")
232
+
tmux_send("server", "python app.py")
233
+
tmux_wait("server", "Listening on port 8080")
234
+
235
+
tmux_create("tests")
236
+
tmux_send("tests", "pytest tests/ -v")
237
+
tmux_wait("tests", "passed")
238
+
tmux_read("tests")
239
+
240
+
tmux_destroy("server")
241
+
tmux_destroy("tests")
242
+
```
243
+
244
+
### Session Namespacing
245
+
246
+
All sessions are automatically prefixed with `bpsa_` internally to avoid collisions with user tmux sessions. The agent uses short names (e.g., `server`) while tmux sees `bpsa_server`. Sessions are automatically cleaned up when the process exits.
247
+
202
248
## MCP Server Integration
203
249
204
250
The `--mcp` flag connects [Model Context Protocol](https://modelcontextprotocol.io) servers as additional tool sources. Tools exposed by MCP servers are automatically available to the agent alongside the built-in tools.
0 commit comments