Skip to content

Commit 3f10611

Browse files
Rename PyPI package to agent-strace
PyPI name 'agent-trace' conflicts with existing 'agenttrace' package (PEP 503 normalization). CLI command is now 'agent-strace'. GitHub repo, Python module (agent_trace), and trace directory (.agent-traces/) are unchanged. Co-authored-by: Ona <no-reply@ona.com>
1 parent d55cc87 commit 3f10611

7 files changed

Lines changed: 64 additions & 64 deletions

File tree

README.md

Lines changed: 28 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,19 @@ We have `strace` for syscalls. We have `tcpdump` for packets. We have nothing fo
1010

1111
When a coding agent rewrites 20 files in a background session, you get a pull request. You don't get the story of how it got there. Which files did it read first? What context was in the window when it decided to change the approach? Why did it call the same tool three times?
1212

13-
LangSmith traces LLM calls. That's one layer. The gap is everything around it: tool calls, file operations, decision points, error recovery. `agent-trace` captures the full picture.
13+
LangSmith traces LLM calls. That's one layer. The gap is everything around it: tool calls, file operations, decision points, error recovery. `agent-strace` captures the full picture.
1414

1515
## Install
1616

1717
```bash
1818
# With uv (recommended)
19-
uv tool install agent-trace
19+
uv tool install agent-strace
2020

2121
# Or with pip
22-
pip install agent-trace
22+
pip install agent-strace
2323

2424
# Or run without installing
25-
uvx agent-trace replay
25+
uvx agent-strace replay
2626
```
2727

2828
**Zero dependencies.** Python 3.10+ standard library only.
@@ -35,16 +35,16 @@ Wrap any MCP server. Every message between agent and server is captured.
3535

3636
```bash
3737
# Record a session
38-
agent-trace record -- npx -y @modelcontextprotocol/server-filesystem /tmp
38+
agent-strace record -- npx -y @modelcontextprotocol/server-filesystem /tmp
3939

4040
# List recorded sessions
41-
agent-trace list
41+
agent-strace list
4242

4343
# Replay the last session
44-
agent-trace replay
44+
agent-strace replay
4545

4646
# Replay a specific session (prefix match works)
47-
agent-trace replay a84664
47+
agent-strace replay a84664
4848
```
4949

5050
### Option 2: Python decorator
@@ -75,18 +75,18 @@ search_codebase("authenticate")
7575
call_llm([{"role": "user", "content": "Fix the bug"}])
7676

7777
meta = end_session()
78-
print(f"Replay with: agent-trace replay {meta.session_id}")
78+
print(f"Replay with: agent-strace replay {meta.session_id}")
7979
```
8080

8181
## CLI commands
8282

8383
```
84-
agent-trace record -- <command> Record an MCP server session
85-
agent-trace replay [session-id] Replay a session (default: latest)
86-
agent-trace list List all sessions
87-
agent-trace stats [session-id] Show tool call frequency and timing
88-
agent-trace inspect <session-id> Dump full session as JSON
89-
agent-trace export <session-id> Export as JSON, CSV, or NDJSON
84+
agent-strace record -- <command> Record an MCP server session
85+
agent-strace replay [session-id] Replay a session (default: latest)
86+
agent-strace list List all sessions
87+
agent-strace stats [session-id] Show tool call frequency and timing
88+
agent-strace inspect <session-id> Dump full session as JSON
89+
agent-strace export <session-id> Export as JSON, CSV, or NDJSON
9090
```
9191

9292
### Replay output
@@ -146,23 +146,23 @@ Session Summary
146146

147147
```bash
148148
# Show only tool calls and errors
149-
agent-trace replay --filter tool_call,error
149+
agent-strace replay --filter tool_call,error
150150

151151
# Replay with timing (watch it unfold)
152-
agent-trace replay --live --speed 2
152+
agent-strace replay --live --speed 2
153153
```
154154

155155
### Export
156156

157157
```bash
158158
# JSON array
159-
agent-trace export a84664 --format json
159+
agent-strace export a84664 --format json
160160

161161
# CSV (for spreadsheets)
162-
agent-trace export a84664 --format csv
162+
agent-strace export a84664 --format csv
163163

164164
# NDJSON (for streaming pipelines)
165-
agent-trace export a84664 --format ndjson
165+
agent-strace export a84664 --format ndjson
166166
```
167167

168168
## Trace format
@@ -210,7 +210,7 @@ Events link to each other. A `tool_result` has a `parent_id` pointing to its `to
210210

211211
## Use with Claude Code, Cursor, Windsurf
212212

213-
agent-trace works with any tool that launches MCP servers. The idea is simple: instead of launching the MCP server directly, launch it through `agent-trace record`. The agent and server don't know the proxy exists.
213+
agent-strace works with any tool that launches MCP servers. The idea is simple: instead of launching the MCP server directly, launch it through `agent-strace record`. The agent and server don't know the proxy exists.
214214

215215
### Claude Code
216216

@@ -219,7 +219,7 @@ agent-trace works with any tool that launches MCP servers. The idea is simple: i
219219
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /tmp
220220

221221
# Use:
222-
claude mcp add filesystem -- agent-trace record --name filesystem -- npx -y @modelcontextprotocol/server-filesystem /tmp
222+
claude mcp add filesystem -- agent-strace record --name filesystem -- npx -y @modelcontextprotocol/server-filesystem /tmp
223223
```
224224

225225
Or edit `.claude/mcp.json`:
@@ -228,7 +228,7 @@ Or edit `.claude/mcp.json`:
228228
{
229229
"mcpServers": {
230230
"filesystem": {
231-
"command": "agent-trace",
231+
"command": "agent-strace",
232232
"args": ["record", "--name", "filesystem", "--", "npx", "-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
233233
}
234234
}
@@ -243,7 +243,7 @@ Edit `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (per-project):
243243
{
244244
"mcpServers": {
245245
"filesystem": {
246-
"command": "agent-trace",
246+
"command": "agent-strace",
247247
"args": ["record", "--name", "filesystem", "--", "npx", "-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
248248
}
249249
}
@@ -258,7 +258,7 @@ Edit `~/.codeium/windsurf/mcp_config.json`:
258258
{
259259
"mcpServers": {
260260
"filesystem": {
261-
"command": "agent-trace",
261+
"command": "agent-strace",
262262
"args": ["record", "--name", "filesystem", "--", "npx", "-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
263263
}
264264
}
@@ -269,10 +269,10 @@ Edit `~/.codeium/windsurf/mcp_config.json`:
269269

270270
The pattern is the same for any tool that uses MCP over stdio:
271271

272-
1. Replace the server `command` with `agent-trace`
272+
1. Replace the server `command` with `agent-strace`
273273
2. Prepend `record --name <label> --` to the original args
274274
3. Use the tool normally
275-
4. Run `agent-trace replay` to see what happened
275+
4. Run `agent-strace replay` to see what happened
276276

277277
See the [examples/](examples/) directory for full config files.
278278

@@ -281,7 +281,7 @@ See the [examples/](examples/) directory for full config files.
281281
### MCP proxy mode
282282

283283
```
284-
Agent ←→ agent-trace proxy ←→ MCP Server
284+
Agent ←→ agent-strace proxy ←→ MCP Server
285285
286286
.agent-traces/
287287
```

examples/basic_agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def main():
128128
print(f" LLM requests: {meta.llm_requests}")
129129
print(f" Errors: {meta.errors}")
130130
print(f" Duration: {meta.total_duration_ms:.0f}ms")
131-
print(f"\nReplay with: python -m agent_trace.cli replay {meta.session_id}")
131+
print(f"\nReplay with: agent-strace replay {meta.session_id}")
132132

133133

134134
if __name__ == "__main__":

examples/claude_code_config.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Claude Code launches MCP servers as subprocesses over stdio. agent-trace sits
66
between Claude Code and the MCP server, capturing every tool call.
77

88
```
9-
Claude Code ←→ agent-trace record ←→ MCP Server
9+
Claude Code ←→ agent-strace record ←→ MCP Server
1010
1111
.agent-traces/
1212
```
@@ -17,10 +17,10 @@ Claude Code ←→ agent-trace record ←→ MCP Server
1717

1818
```bash
1919
# With uv (recommended)
20-
uv tool install agent-trace
20+
uv tool install agent-strace
2121

2222
# Or with pip
23-
pip install agent-trace
23+
pip install agent-strace
2424
```
2525

2626
### 2. Add a traced MCP server
@@ -32,7 +32,7 @@ Use `claude mcp add` with agent-trace wrapping the server command:
3232
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem /tmp
3333

3434
# Use:
35-
claude mcp add filesystem -- agent-trace record --name filesystem -- npx -y @modelcontextprotocol/server-filesystem /tmp
35+
claude mcp add filesystem -- agent-strace record --name filesystem -- npx -y @modelcontextprotocol/server-filesystem /tmp
3636
```
3737

3838
The `--name` flag tags the session so you can identify which server it came from.
@@ -43,7 +43,7 @@ The `--name` flag tags the session so you can identify which server it came from
4343
{
4444
"mcpServers": {
4545
"filesystem": {
46-
"command": "agent-trace",
46+
"command": "agent-strace",
4747
"args": [
4848
"record",
4949
"--name", "filesystem",
@@ -63,11 +63,11 @@ Every tool call Claude Code makes through the MCP server is now traced.
6363

6464
```bash
6565
# List all sessions
66-
agent-trace list
66+
agent-strace list
6767

6868
# Replay the latest
69-
agent-trace replay
69+
agent-strace replay
7070

7171
# Show stats
72-
agent-trace stats
72+
agent-strace stats
7373
```

examples/cursor_config.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,10 @@ so every tool call is captured.
1212

1313
```bash
1414
# With uv (recommended)
15-
uv tool install agent-trace
15+
uv tool install agent-strace
1616

1717
# Or with pip
18-
pip install agent-trace
18+
pip install agent-strace
1919
```
2020

2121
### 2. Edit your MCP config
@@ -26,7 +26,7 @@ Open `~/.cursor/mcp.json` (or `.cursor/mcp.json` in your project):
2626
{
2727
"mcpServers": {
2828
"filesystem": {
29-
"command": "agent-trace",
29+
"command": "agent-strace",
3030
"args": [
3131
"record",
3232
"--name", "filesystem",
@@ -35,7 +35,7 @@ Open `~/.cursor/mcp.json` (or `.cursor/mcp.json` in your project):
3535
]
3636
},
3737
"github": {
38-
"command": "agent-trace",
38+
"command": "agent-strace",
3939
"args": [
4040
"record",
4141
"--name", "github",
@@ -60,7 +60,7 @@ All MCP tool calls are captured in `.agent-traces/`.
6060
### 4. Replay
6161

6262
```bash
63-
agent-trace list
64-
agent-trace replay
65-
agent-trace stats
63+
agent-strace list
64+
agent-strace replay
65+
agent-strace stats
6666
```

examples/windsurf_config.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ agent-trace wraps the server command to capture every tool call.
1111

1212
```bash
1313
# With uv (recommended)
14-
uv tool install agent-trace
14+
uv tool install agent-strace
1515

1616
# Or with pip
17-
pip install agent-trace
17+
pip install agent-strace
1818
```
1919

2020
### 2. Edit your MCP config
@@ -25,7 +25,7 @@ Open `~/.codeium/windsurf/mcp_config.json`:
2525
{
2626
"mcpServers": {
2727
"filesystem": {
28-
"command": "agent-trace",
28+
"command": "agent-strace",
2929
"args": [
3030
"record",
3131
"--name", "filesystem",
@@ -44,7 +44,7 @@ All MCP tool calls are captured in `.agent-traces/`.
4444
### 4. Replay
4545

4646
```bash
47-
agent-trace list
48-
agent-trace replay
49-
agent-trace stats
47+
agent-strace list
48+
agent-strace replay
49+
agent-strace stats
5050
```

pyproject.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ requires = ["hatchling"]
33
build-backend = "hatchling.build"
44

55
[project]
6-
name = "agent-trace"
6+
name = "agent-strace"
77
version = "0.1.0"
88
description = "strace for AI agents. Capture and replay every tool call, LLM request, and decision point."
99
readme = "README.md"
@@ -27,7 +27,7 @@ classifiers = [
2727
]
2828

2929
[project.scripts]
30-
agent-trace = "agent_trace.cli:main"
30+
agent-strace = "agent_trace.cli:main"
3131

3232
[project.urls]
3333
Homepage = "https://github.com/Siddhant-K-code/agent-trace"

src/agent_trace/cli.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
"""CLI entry point.
22
33
Usage:
4-
agent-trace record -- <server-command> [args...]
5-
agent-trace replay [session-id]
6-
agent-trace list
7-
agent-trace inspect <session-id>
8-
agent-trace export <session-id> [--format json|csv]
4+
agent-strace record -- <server-command> [args...]
5+
agent-strace replay [session-id]
6+
agent-strace list
7+
agent-strace inspect <session-id>
8+
agent-strace export <session-id> [--format json|csv]
99
"""
1010

1111
from __future__ import annotations
@@ -42,8 +42,8 @@ def cmd_record(args: argparse.Namespace) -> int:
4242

4343
if not args.quiet:
4444
sys.stderr.write(
45-
f"agent-trace: recording session {meta.session_id}\n"
46-
f"agent-trace: command: {' '.join(args.command)}\n"
45+
f"agent-strace: recording session {meta.session_id}\n"
46+
f"agent-strace: command: {' '.join(args.command)}\n"
4747
)
4848

4949
on_event = _print_live_event if args.verbose else None
@@ -59,11 +59,11 @@ def cmd_record(args: argparse.Namespace) -> int:
5959

6060
if not args.quiet:
6161
sys.stderr.write(
62-
f"\nagent-trace: session {meta.session_id} complete\n"
63-
f"agent-trace: {meta.tool_calls} tool calls, "
62+
f"\nagent-strace: session {meta.session_id} complete\n"
63+
f"agent-strace: {meta.tool_calls} tool calls, "
6464
f"{meta.llm_requests} llm requests, "
6565
f"{meta.errors} errors\n"
66-
f"agent-trace: replay with: agent-trace replay {meta.session_id}\n"
66+
f"agent-strace: replay with: agent-trace replay {meta.session_id}\n"
6767
)
6868

6969
return returncode
@@ -241,10 +241,10 @@ def cmd_stats(args: argparse.Namespace) -> int:
241241

242242
def build_parser() -> argparse.ArgumentParser:
243243
parser = argparse.ArgumentParser(
244-
prog="agent-trace",
244+
prog="agent-strace",
245245
description="strace for AI agents. Capture and replay every tool call.",
246246
)
247-
parser.add_argument("--version", action="version", version=f"agent-trace {__version__}")
247+
parser.add_argument("--version", action="version", version=f"agent-strace {__version__}")
248248
parser.add_argument(
249249
"--trace-dir",
250250
default=".agent-traces",

0 commit comments

Comments
 (0)