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 bootstrap
1
+ # session-finder
2
2
 
3
- This prerelease establishes the npm package so GitHub Actions trusted publishing
4
- can be configured for https://github.com/2heal1/session-finder.
3
+ **Find your past coding-agent conversations, fast.**
5
4
 
6
- It does not include the session-finder CLI or any executable. The first functional
7
- release is planned as version 0.1.0, containing native binaries for macOS and Linux
8
- on arm64 and x64.
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
package/package.json CHANGED
@@ -1,17 +1,38 @@
1
1
  {
2
2
  "name": "session-finder",
3
- "version": "0.0.0-bootstrap.0",
4
- "description": "Bootstrap prerelease for session-finder trusted publishing setup",
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
  }