repotracer 1.0.1 → 2.1.1
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.
- package/README.md +54 -31
- package/bin/repotracer.js +17 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# repotracer
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A repo investigator for Claude Code and Codex.
|
|
4
|
+
|
|
5
|
+
RepoTracer installs an MCP tool named `repo_scout`. The coding agent can call it when a task needs repository investigation, then continue with the returned findings instead of spending the same conversation tracing the repo itself.
|
|
4
6
|
|
|
5
7
|
## Setup
|
|
6
8
|
|
|
@@ -8,50 +10,71 @@ RepoTracer is an MCP server whose `repo_scout` tool runs an isolated, read-only
|
|
|
8
10
|
npx repotracer@latest setup
|
|
9
11
|
```
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
Choose Claude Code, Codex, or both.
|
|
12
14
|
|
|
13
|
-
|
|
14
|
-
When a scout runs, RepoTracer reuses the current Codex login and provider instead
|
|
15
|
-
of requiring another API key.
|
|
15
|
+
RepoTracer uses the native CLI you are already signed into. A second provider login is not required for native investigations.
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
npm install -g @openai/codex
|
|
19
|
-
npx repotracer@latest setup
|
|
20
|
-
codex login
|
|
21
|
-
repotracer doctor
|
|
22
|
-
```
|
|
17
|
+
Run the same command later to reconfigure or uninstall.
|
|
23
18
|
|
|
24
|
-
|
|
19
|
+
## Commands
|
|
25
20
|
|
|
26
21
|
```bash
|
|
27
|
-
npx repotracer@latest
|
|
22
|
+
npx repotracer@latest "where is authentication handled?"
|
|
23
|
+
npx repotracer@latest scout "trace token refresh"
|
|
24
|
+
npx repotracer@latest symbols "Config" --mode references
|
|
25
|
+
npx repotracer@latest serve
|
|
26
|
+
npx repotracer@latest doctor
|
|
27
|
+
npx repotracer@latest status
|
|
28
|
+
npx repotracer@latest update
|
|
29
|
+
npx repotracer@latest uninstall --yes
|
|
28
30
|
```
|
|
29
31
|
|
|
30
|
-
|
|
31
|
-
effect. To disable automatic updates, set `updates.automatic = false` in
|
|
32
|
-
`~/.repotracer/config.toml` or set `REPOTRACER_NO_UPDATE=1`. Running
|
|
33
|
-
`npx repotracer@latest setup` still updates a disabled installation.
|
|
32
|
+
`serve` starts the MCP server over stdio.
|
|
34
33
|
|
|
35
|
-
|
|
34
|
+
`symbols` performs a local syntax lookup without a model call.
|
|
36
35
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
repotracer uninstall --yes
|
|
43
|
-
```
|
|
36
|
+
## Native investigators
|
|
37
|
+
|
|
38
|
+
Claude Code and Codex investigations run through the corresponding native CLI.
|
|
39
|
+
|
|
40
|
+
The investigator gets a separate conversation for the repository work. Related calls can continue that investigation instead of starting over, and independent investigations can run in parallel.
|
|
44
41
|
|
|
45
|
-
|
|
42
|
+
Native investigations are **not** an enforced read-only sandbox. The underlying CLI can expose execution or filesystem capabilities beyond RepoTracer's own repository tools.
|
|
43
|
+
|
|
44
|
+
For the current security model, read [SECURITY.md](https://github.com/repotracer/repotracer/blob/main/SECURITY.md).
|
|
45
|
+
|
|
46
|
+
## When the investigator is unsure
|
|
47
|
+
|
|
48
|
+
A result can preserve what was found, what was checked, and what remains unresolved.
|
|
49
|
+
|
|
50
|
+
That lets Claude Code or Codex continue from useful partial work instead of repeating the investigation from scratch.
|
|
51
|
+
|
|
52
|
+
## Custom OpenAI-compatible endpoint
|
|
46
53
|
|
|
47
54
|
```bash
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
55
|
+
npx repotracer@latest setup \
|
|
56
|
+
--base-url http://localhost:11434/v1 \
|
|
57
|
+
--model deepseek-coder
|
|
51
58
|
```
|
|
52
59
|
|
|
53
|
-
|
|
60
|
+
Set `REPOTRACER_API_KEY` when the endpoint requires authentication.
|
|
61
|
+
|
|
62
|
+
Custom OpenAI-compatible models use RepoTracer's own repository-tool loop rather than the native Claude Code or Codex environment.
|
|
63
|
+
|
|
64
|
+
## Requirements
|
|
65
|
+
|
|
66
|
+
- Node.js 18 or newer for the `npx` launcher
|
|
67
|
+
- `codex` for the Codex integration
|
|
68
|
+
- `claude` for the Claude Code integration
|
|
69
|
+
|
|
70
|
+
Published native packages target macOS arm64/x64, Linux arm64/x64, and Windows x64.
|
|
71
|
+
|
|
72
|
+
## Documentation
|
|
54
73
|
|
|
55
|
-
|
|
74
|
+
- [README](https://github.com/repotracer/repotracer)
|
|
75
|
+
- [Benchmarks](https://github.com/repotracer/repotracer/blob/main/BENCHMARKS.md)
|
|
76
|
+
- [Architecture](https://github.com/repotracer/repotracer/blob/main/docs/ARCHITECTURE.md)
|
|
77
|
+
- [Claude Code and Codex integration](https://github.com/repotracer/repotracer/blob/main/docs/CLAUDE_CODE_INTEGRATION.md)
|
|
78
|
+
- [Security](https://github.com/repotracer/repotracer/blob/main/SECURITY.md)
|
|
56
79
|
|
|
57
80
|
MIT licensed.
|
package/bin/repotracer.js
CHANGED
|
@@ -34,8 +34,24 @@ function findBinary() {
|
|
|
34
34
|
return candidates.find(candidate => fs.existsSync(candidate)) || null;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
+
function topLevelCommand(args) {
|
|
38
|
+
const valuedOptions = new Set(['--root', '--config', '--model', '--base-url']);
|
|
39
|
+
const flags = new Set(['--json', '--mock', '--verbose', '-v']);
|
|
40
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
41
|
+
const arg = args[index];
|
|
42
|
+
if (valuedOptions.has(arg)) {
|
|
43
|
+
index += 1;
|
|
44
|
+
} else if (valuedOptions.has(arg.split('=')[0]) || flags.has(arg)) {
|
|
45
|
+
continue;
|
|
46
|
+
} else {
|
|
47
|
+
return arg.startsWith('-') ? null : arg;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
|
|
37
53
|
function persistForSetup(bin, args, home = os.homedir()) {
|
|
38
|
-
if (!path.isAbsolute(bin) || !
|
|
54
|
+
if (!path.isAbsolute(bin) || !['setup', 'settings', 'reconfigure'].includes(topLevelCommand(args)) || args.includes('--dry-run')) return bin;
|
|
39
55
|
|
|
40
56
|
const name = process.platform === 'win32' ? 'repotracer.exe' : 'repotracer';
|
|
41
57
|
const directory = path.join(home, '.repotracer', 'bin');
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "repotracer",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.1.1",
|
|
4
|
+
"description": "Read-only repository investigations for Codex and Claude Code using a separately configured scout model.",
|
|
5
5
|
"bin": {
|
|
6
6
|
"repotracer": "bin/repotracer.js"
|
|
7
7
|
},
|