@muthuishere/crossmem 0.1.1 → 0.1.3
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 +119 -2
- package/package.json +6 -6
package/README.md
CHANGED
|
@@ -1,3 +1,120 @@
|
|
|
1
|
-
#
|
|
1
|
+
# crossmem
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**Portable context memory across local agent tools.**
|
|
4
|
+
|
|
5
|
+
`crossmem` discovers your local Claude Code, Codex, Devin, and Copilot session stores, lists available sessions, and emits a clean context bundle that can be loaded into another agent session — so context follows you across tools and repos.
|
|
6
|
+
|
|
7
|
+
It is primarily a fast, local-first context CLI. It sends no telemetry; everything is local reads.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
npm install -g @muthuishere/crossmem
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
This package is a thin launcher that resolves a prebuilt native binary for your platform (`darwin-arm64`, `darwin-x64`, `linux-arm64`, `linux-x64`, `windows-x64`) via optional dependencies — no compiler or Go toolchain required.
|
|
16
|
+
|
|
17
|
+
Also available via:
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
go install github.com/muthuishere/crossmemcli/cmd/crossmem@latest # Go
|
|
21
|
+
brew install muthuishere/tap/crossmem # Homebrew
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Resume across tools
|
|
25
|
+
|
|
26
|
+
The core flow: Codex hits its usage limit, you reopen the **same folder** in Claude
|
|
27
|
+
Code, and pick up where you left off.
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
# 1. From the folder, load the latest session for it (summary by default)
|
|
31
|
+
crossmem load . --limit 1
|
|
32
|
+
|
|
33
|
+
# 2. Prefer to choose? List the recent sessions for THIS folder, newest first
|
|
34
|
+
crossmem list . --limit 5
|
|
35
|
+
# 2026-06-29T14:27 codex /Users/you/.codex/sessions/.../rollout-….jsonl
|
|
36
|
+
# 2026-06-29T04:10 devin devin:narrow-action
|
|
37
|
+
# 2026-06-28T21:02 claude /Users/you/.claude/projects/.../<id>.jsonl
|
|
38
|
+
|
|
39
|
+
# 3. Load the one you picked, by the handle in the last column
|
|
40
|
+
crossmem load --session <handle> # e.g. a .jsonl path, or devin:<id>
|
|
41
|
+
crossmem load --session <handle> --full # fuller excerpt instead of the summary
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
`crossmem` matches a session to a folder by the **real working directory** recorded
|
|
45
|
+
in each transcript — so it works even when the folder name contains a dash, and
|
|
46
|
+
across every tool. The handle from `list` is uniform (`--session` takes a transcript
|
|
47
|
+
path or `devin:<id>`), so loading is the same whether the session lived in a JSONL
|
|
48
|
+
file or a SQLite database.
|
|
49
|
+
|
|
50
|
+
**summary vs full** — by default `load` emits a compact, summary-friendly excerpt per
|
|
51
|
+
session; add `--full` for a larger, more verbatim excerpt.
|
|
52
|
+
|
|
53
|
+
## Usage
|
|
54
|
+
|
|
55
|
+
```sh
|
|
56
|
+
crossmem scan # discover known local context stores
|
|
57
|
+
crossmem list . --limit 5 # recent sessions for THIS folder
|
|
58
|
+
crossmem list --provider claude --limit 20 # recent Claude sessions everywhere
|
|
59
|
+
crossmem load . # portable context bundle for this repo
|
|
60
|
+
crossmem load --session <handle> --full # one chosen session, fuller excerpt
|
|
61
|
+
crossmem update . # write durable .crossmem/ context files
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Every command has built-in help: `crossmem help load`, `crossmem --version`.
|
|
65
|
+
|
|
66
|
+
### Commands
|
|
67
|
+
|
|
68
|
+
| Command | What it does |
|
|
69
|
+
| --- | --- |
|
|
70
|
+
| `scan` | Discover known local stores without reading transcript contents. |
|
|
71
|
+
| `list` / `sessions` | List recent sessions; pass a folder to scope to it, or filter with `--provider`. |
|
|
72
|
+
| `load` / `context` | Print a context bundle for a folder, or one session via `--session`; `--full` for more. |
|
|
73
|
+
| `update` | Write durable `<folder>/.crossmem/` files (`context.md`, `guardrails.md`, `sessions.json`, `sources.json`). |
|
|
74
|
+
| `guardrails` | Print the repo instruction files an agent should read first. |
|
|
75
|
+
| `install --skills` | Install the optional global `crossmem-loader` skill that drives this flow. |
|
|
76
|
+
|
|
77
|
+
## Local stores
|
|
78
|
+
|
|
79
|
+
`crossmem` reads these on-disk stores (read-only):
|
|
80
|
+
|
|
81
|
+
| Tool | Store |
|
|
82
|
+
| --- | --- |
|
|
83
|
+
| Claude Code | `~/.claude/projects/<encoded-workspace>/*.jsonl` (+ per-project `memory/`) |
|
|
84
|
+
| Codex | `~/.codex/sessions/YYYY/MM/DD/*.jsonl`, `~/.codex/history.jsonl` |
|
|
85
|
+
| Copilot (VS Code) | `~/Library/Application Support/Code/User/workspaceStorage/<id>/.../*.jsonl` |
|
|
86
|
+
| Devin CLI | `~/.local/share/devin/cli/sessions.db` (SQLite) |
|
|
87
|
+
|
|
88
|
+
## Bundles & guardrails
|
|
89
|
+
|
|
90
|
+
`crossmem load` prints a bundle; `crossmem update .` writes it durably under `.crossmem/`. A bundle separates two things on purpose:
|
|
91
|
+
|
|
92
|
+
- **Guardrails** — repo instruction files (`AGENTS.md`, `CLAUDE.md`, `.agents/AGENTS.md`, `.claude/CLAUDE.md`) treated as *authoritative instructions*.
|
|
93
|
+
- **History** — recent session excerpts, treated as *context only*.
|
|
94
|
+
|
|
95
|
+
How much to summarize is left to the consuming agent (or the `crossmem-loader` skill), since different tasks need different amounts of history.
|
|
96
|
+
|
|
97
|
+
## Safety
|
|
98
|
+
|
|
99
|
+
`crossmem` reads other tools' private stores, so it is deliberately conservative:
|
|
100
|
+
|
|
101
|
+
- It never reads `*.env`, credential files, auth databases, or `vault/` directories (e.g. Devin's `credentials.toml` is skipped).
|
|
102
|
+
- Secret values are never written into generated context.
|
|
103
|
+
|
|
104
|
+
## Debugging
|
|
105
|
+
|
|
106
|
+
Observability is local and opt-in:
|
|
107
|
+
|
|
108
|
+
```sh
|
|
109
|
+
CROSSMEM_DEBUG=1 crossmem scan
|
|
110
|
+
CROSSMEM_LOG=/tmp/crossmem.log crossmem load . --limit 5
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Debug logs include command flow and local read/query failures — never transcript contents.
|
|
114
|
+
|
|
115
|
+
## Links
|
|
116
|
+
|
|
117
|
+
- Source & full docs: https://github.com/muthuishere/crossmemcli
|
|
118
|
+
- Issues: https://github.com/muthuishere/crossmemcli/issues
|
|
119
|
+
|
|
120
|
+
MIT © Muthukumaran Navaneethakrishnan
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@muthuishere/crossmem",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Portable context memory across local agent tools.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"crossmem",
|
|
@@ -33,11 +33,11 @@
|
|
|
33
33
|
"README.md"
|
|
34
34
|
],
|
|
35
35
|
"optionalDependencies": {
|
|
36
|
-
"@muthuishere/crossmem-darwin-arm64": "0.1.
|
|
37
|
-
"@muthuishere/crossmem-darwin-x64": "0.1.
|
|
38
|
-
"@muthuishere/crossmem-linux-arm64": "0.1.
|
|
39
|
-
"@muthuishere/crossmem-linux-x64": "0.1.
|
|
40
|
-
"@muthuishere/crossmem-windows-x64": "0.1.
|
|
36
|
+
"@muthuishere/crossmem-darwin-arm64": "0.1.3",
|
|
37
|
+
"@muthuishere/crossmem-darwin-x64": "0.1.3",
|
|
38
|
+
"@muthuishere/crossmem-linux-arm64": "0.1.3",
|
|
39
|
+
"@muthuishere/crossmem-linux-x64": "0.1.3",
|
|
40
|
+
"@muthuishere/crossmem-windows-x64": "0.1.3"
|
|
41
41
|
},
|
|
42
42
|
"os": [
|
|
43
43
|
"darwin",
|