session-finder 0.0.0-bootstrap.0 → 0.1.0
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
CHANGED
|
@@ -1,8 +1,94 @@
|
|
|
1
|
-
# session-finder
|
|
1
|
+
# session-finder
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
can be configured for https://github.com/2heal1/session-finder.
|
|
3
|
+
**Find your past coding-agent conversations, fast.**
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
session-finder is a native **Rust CLI** for searching and browsing local conversations from **Codex, TRAE IDE, and TRAE CLI**. Find a discussion by a few words, narrow it to a project, or open the conversation you worked on last week.
|
|
6
|
+
|
|
7
|
+
It searches titles and user/assistant messages, tolerates typos, and provides a terminal browser and JSON output. Your conversations stay on your machine: no uploads, model calls, or background service.
|
|
8
|
+
|
|
9
|
+
## Built for fast local search
|
|
10
|
+
|
|
11
|
+
Rust, incremental indexing, and selective reads keep repeat queries quick. The executable runs directly without a Node.js runtime.
|
|
12
|
+
|
|
13
|
+
| Task | Empty tool cache | Warm tool cache |
|
|
14
|
+
| --- | ---: | ---: |
|
|
15
|
+
| List the 10 newest sessions | 31.7 ms | **26.2 ms** |
|
|
16
|
+
| Search a project with a typo | 51.5 ms | **38.6 ms** |
|
|
17
|
+
| List sessions by latest reply | 113.4 ms | **53.1 ms** |
|
|
18
|
+
| Explore a session's relationships | 43.6 ms | **28.3 ms** |
|
|
19
|
+
|
|
20
|
+
Measured on Linux x64 with **1,200 synthetic Codex sessions across 24 projects**, using the median of seven runs. Times include process startup and JSON output; the project search covers 47 sessions. An empty tool cache does not mean an empty OS file cache. Results vary with the agent, conversation size, and machine. See the [benchmark methodology and full results](docs/performance.md).
|
|
21
|
+
|
|
22
|
+
## Supported agents
|
|
23
|
+
|
|
24
|
+
| Agent | Provider | Support |
|
|
25
|
+
| --- | --- | --- |
|
|
26
|
+
| **Codex** | `codex` | Local and archived conversations, full-text search, projects, fork and subagent relationships |
|
|
27
|
+
| **TRAE IDE** | `trae` | Local database search, titles, projects, and conversation export; native access verified with **TRAE CN 3.4.15 on macOS arm64** |
|
|
28
|
+
| **TRAE CLI** | `traecli` | Local and archived conversations, full-text search, projects, and visible history after rollbacks |
|
|
29
|
+
|
|
30
|
+
Searches include all three by default. Use `--provider codex`, `--provider trae`, or `--provider traecli` to select one. Relationship discovery currently supports Codex only. TRAE IDE also supports compatible offline exports and ContextFS snapshots; see the [TRAE IDE guide](docs/trae.md) for version and source limitations.
|
|
31
|
+
|
|
32
|
+
## Install
|
|
33
|
+
|
|
34
|
+
The first installable npm release is being prepared. The current npm version is a bootstrap placeholder and does not contain the CLI. For now, build from source with Rust and a native C toolchain:
|
|
35
|
+
|
|
36
|
+
```sh
|
|
37
|
+
git clone https://github.com/2heal1/session-finder.git
|
|
38
|
+
cd session-finder
|
|
39
|
+
sh build.sh
|
|
40
|
+
./session-finder --help
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Supported release targets are **macOS 13+** and **Linux with glibc 2.35+**, each on **arm64 and x64**. Windows and Alpine/musl are not supported. Once the first CLI release is published, it will be available with `npm install -g session-finder`.
|
|
44
|
+
|
|
45
|
+
## Find a conversation
|
|
46
|
+
|
|
47
|
+
Run `./session-finder` in a terminal to open the interactive browser. Use arrow keys to navigate, Enter to select, and Esc to go back.
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
# Recent conversations across all supported agents
|
|
51
|
+
./session-finder recent
|
|
52
|
+
|
|
53
|
+
# Search titles and messages; typos are supported
|
|
54
|
+
./session-finder search "modren federation" --sort relevance
|
|
55
|
+
|
|
56
|
+
# Find conversations for a project from the last seven days
|
|
57
|
+
./session-finder recent -p my-project --since 7d
|
|
58
|
+
|
|
59
|
+
# Restrict a search to one agent
|
|
60
|
+
./session-finder search "authentication" --provider codex
|
|
61
|
+
|
|
62
|
+
# Match a normalized substring without typo tolerance
|
|
63
|
+
./session-finder search "release workflow" --exact
|
|
64
|
+
|
|
65
|
+
# List projects or browse conversations interactively
|
|
66
|
+
./session-finder projects
|
|
67
|
+
./session-finder browse
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Results default to the latest assistant reply. Use `--sort created` for creation order or `--sort relevance` for the best text matches. Add `-n 20 --offset 20` to paginate. Subagent sessions are hidden unless you use `--include-subagents` or look them up by ID.
|
|
71
|
+
|
|
72
|
+
## Read and reuse results
|
|
73
|
+
|
|
74
|
+
```sh
|
|
75
|
+
# Open a conversation by ID or a unique prefix of at least eight characters
|
|
76
|
+
./session-finder show <ID>
|
|
77
|
+
|
|
78
|
+
# Follow Codex forks and subagents
|
|
79
|
+
./session-finder relations <ID> --depth 3
|
|
80
|
+
|
|
81
|
+
# Export compact search results for scripts or other tools
|
|
82
|
+
./session-finder search "authentication" --json
|
|
83
|
+
|
|
84
|
+
# Request full session metadata
|
|
85
|
+
./session-finder recent --json --verbose
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
For Codex and TRAE CLI, `show` prints the user/assistant conversation; `show --json` includes its messages. For TRAE IDE, `show` returns the path to a temporary JSONL conversation file; `show --json` returns that file's metadata.
|
|
89
|
+
|
|
90
|
+
JSON stays on stdout. Warnings and timing output go to stderr; add `--timings` to see query timing alongside JSON. Default data locations are `~/.codex`, `~/.trae/cli`, and the local TRAE IDE installation. Use `--home`, `--traecli-home`, or the [TRAE source options](docs/trae.md) to override them.
|
|
91
|
+
|
|
92
|
+
session-finder reads existing conversations. It does not create sessions or send messages. Its local caches and requested conversation exports may contain message text.
|
|
93
|
+
|
|
94
|
+
See the [CLI reference](docs/cli.md) for filtering, JSON fields, cache controls, and relationship semantics. Contributors should start with [AGENTS.md](AGENTS.md).
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
set -eu
|
|
3
|
+
|
|
4
|
+
# npm's global bin and node_modules/.bin are symlinks. Resolve relative links too.
|
|
5
|
+
script=$0
|
|
6
|
+
while [ -L "$script" ]; do
|
|
7
|
+
parent=$(dirname "$script")
|
|
8
|
+
link=$(readlink "$script")
|
|
9
|
+
case "$link" in
|
|
10
|
+
/*) script=$link ;;
|
|
11
|
+
*) script=$parent/$link ;;
|
|
12
|
+
esac
|
|
13
|
+
done
|
|
14
|
+
package_dir=$(CDPATH= cd -P "$(dirname "$script")/.." && pwd)
|
|
15
|
+
platform=$(uname -s)
|
|
16
|
+
arch=$(uname -m)
|
|
17
|
+
case "$platform:$arch" in
|
|
18
|
+
Darwin:arm64) target=darwin-arm64 ;;
|
|
19
|
+
Darwin:x86_64) target=darwin-x64 ;;
|
|
20
|
+
Linux:aarch64|Linux:arm64) target=linux-arm64 ;;
|
|
21
|
+
Linux:x86_64|Linux:amd64) target=linux-x64 ;;
|
|
22
|
+
*)
|
|
23
|
+
printf 'session-finder: unsupported platform %s/%s (macOS and Linux, arm64/x64 only)\n' "$platform" "$arch" >&2
|
|
24
|
+
exit 1
|
|
25
|
+
;;
|
|
26
|
+
esac
|
|
27
|
+
binary=$package_dir/native/$target/session-finder
|
|
28
|
+
if [ ! -x "$binary" ]; then
|
|
29
|
+
printf 'session-finder: native executable missing for %s; reinstall the package\n' "$target" >&2
|
|
30
|
+
exit 1
|
|
31
|
+
fi
|
|
32
|
+
exec "$binary" "$@"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,17 +1,38 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "session-finder",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Fast, local Codex session search, relationships and terminal browser",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
7
7
|
"url": "git+https://github.com/2heal1/session-finder.git"
|
|
8
8
|
},
|
|
9
|
+
"private": false,
|
|
10
|
+
"bin": {
|
|
11
|
+
"session-finder": "bin/session-finder"
|
|
12
|
+
},
|
|
13
|
+
"os": [
|
|
14
|
+
"darwin",
|
|
15
|
+
"linux"
|
|
16
|
+
],
|
|
17
|
+
"cpu": [
|
|
18
|
+
"arm64",
|
|
19
|
+
"x64"
|
|
20
|
+
],
|
|
9
21
|
"files": [
|
|
22
|
+
"bin/",
|
|
23
|
+
"native/",
|
|
10
24
|
"README.md"
|
|
11
25
|
],
|
|
26
|
+
"sessionFinder": {
|
|
27
|
+
"platforms": [
|
|
28
|
+
"darwin-arm64",
|
|
29
|
+
"darwin-x64",
|
|
30
|
+
"linux-arm64",
|
|
31
|
+
"linux-x64"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
12
34
|
"publishConfig": {
|
|
13
35
|
"access": "public",
|
|
14
|
-
"registry": "https://registry.npmjs.org"
|
|
15
|
-
"tag": "bootstrap"
|
|
36
|
+
"registry": "https://registry.npmjs.org"
|
|
16
37
|
}
|
|
17
38
|
}
|