sibyl-memory-cli 0.4.1__tar.gz → 0.5.0__tar.gz
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.
- sibyl_memory_cli-0.5.0/PKG-INFO +333 -0
- sibyl_memory_cli-0.5.0/README.md +300 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/pyproject.toml +6 -6
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli/__init__.py +39 -0
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli/_account_gate.py +481 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/src/sibyl_memory_cli/_aesthetic.py +0 -28
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/src/sibyl_memory_cli/_banner.py +0 -9
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli/_entry.py +26 -0
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli/_handoff.py +75 -0
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli/_timefmt.py +61 -0
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli/cli.py +3524 -0
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli/hooks.py +483 -0
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli/lifecycle_cli.py +1167 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/src/sibyl_memory_cli/migrate.py +209 -24
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/src/sibyl_memory_cli/setup.py +632 -15
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli.egg-info/PKG-INFO +333 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/src/sibyl_memory_cli.egg-info/SOURCES.txt +24 -0
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli.egg-info/entry_points.txt +2 -0
- sibyl_memory_cli-0.5.0/src/sibyl_memory_cli.egg-info/requires.txt +9 -0
- sibyl_memory_cli-0.5.0/tests/test_account_gate_2026_09_27.py +413 -0
- sibyl_memory_cli-0.5.0/tests/test_accounts_patch_2026_09_26.py +1221 -0
- sibyl_memory_cli-0.5.0/tests/test_adopt_cli_2026_09_27.py +236 -0
- sibyl_memory_cli-0.5.0/tests/test_agent_follows_next_2026_10_03.py +157 -0
- sibyl_memory_cli-0.5.0/tests/test_handoff_convention_2026_10_03.py +111 -0
- sibyl_memory_cli-0.5.0/tests/test_handoff_rows_2026_10_03.py +1976 -0
- sibyl_memory_cli-0.5.0/tests/test_lifecycle_cli_2026_09_27.py +727 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_memory_cmd_2026_06_16.py +1 -1
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_memory_tenant_2026_08_12.py +1 -1
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_migrate.py +1 -1
- sibyl_memory_cli-0.5.0/tests/test_migrate_trim_2026_09_27.py +197 -0
- sibyl_memory_cli-0.5.0/tests/test_network_guard_2026_09_27.py +92 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_orchestrator.py +8 -4
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_prelaunch_fixes_2026_06_25.py +3 -2
- sibyl_memory_cli-0.5.0/tests/test_r1_paid_tier_cli_2026_09_29.py +724 -0
- sibyl_memory_cli-0.5.0/tests/test_release_fixes_2026_09_27.py +150 -0
- sibyl_memory_cli-0.5.0/tests/test_sd_final_cli_2026_09_27.py +148 -0
- sibyl_memory_cli-0.5.0/tests/test_sd_fixes_cli_2026_09_27.py +463 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_setup.py +8 -1
- sibyl_memory_cli-0.5.0/tests/test_signin_display_fixes_2026_10_10.py +290 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_status_stores_2026_06_11.py +1 -1
- sibyl_memory_cli-0.5.0/tests/test_tier_plan_2026_10_08.py +270 -0
- sibyl_memory_cli-0.5.0/tests/test_tiers_cli_2026_10_05.py +202 -0
- sibyl_memory_cli-0.5.0/tests/test_update_installed_pkgs_2026_10_09.py +179 -0
- sibyl_memory_cli-0.5.0/tests/test_version_2026_10_08.py +135 -0
- sibyl_memory_cli-0.4.1/PKG-INFO +0 -184
- sibyl_memory_cli-0.4.1/README.md +0 -151
- sibyl_memory_cli-0.4.1/src/sibyl_memory_cli/__init__.py +0 -24
- sibyl_memory_cli-0.4.1/src/sibyl_memory_cli/cli.py +0 -1850
- sibyl_memory_cli-0.4.1/src/sibyl_memory_cli.egg-info/PKG-INFO +0 -184
- sibyl_memory_cli-0.4.1/src/sibyl_memory_cli.egg-info/entry_points.txt +0 -2
- sibyl_memory_cli-0.4.1/src/sibyl_memory_cli.egg-info/requires.txt +0 -9
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/LICENSE +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/setup.cfg +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/src/sibyl_memory_cli.egg-info/dependency_links.txt +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/src/sibyl_memory_cli.egg-info/top_level.txt +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_claim_and_fullid_2026_09_04.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_hermes_install_args.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_init_perms_guard.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_migrate_adversarial.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_migrate_force_2026_06_05.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_platform_gate_2026_09_04.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_quality_fixes_2026_06_30.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_superpatch_2026_07_05.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_trust_context_2026_08_25.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_verdict_contract_2026_08_31.py +0 -0
- {sibyl_memory_cli-0.4.1 → sibyl_memory_cli-0.5.0}/tests/test_wiring_fix.py +0 -0
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sibyl-memory-cli
|
|
3
|
+
Version: 0.5.0
|
|
4
|
+
Summary: Command-line interface for the Sibyl Memory Plugin. `sibyl init` activates, `sibyl upgrade` opens the Pro / Elite upgrade flow, `sibyl status` shows current tier and DB stats, `sibyl whoami` gives a one-line account summary, `sibyl devices` lists active devices and supports per-device revoke.
|
|
5
|
+
Author-email: "SIBYL, Sibyl Labs LLC" <sibyl@sibyllabs.org>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://sibyllabs.org/plugin
|
|
8
|
+
Project-URL: Documentation, https://docs.sibyllabs.org/memory/
|
|
9
|
+
Project-URL: Repository, https://github.com/Sibyl-Labs/Sibyl-Memory
|
|
10
|
+
Keywords: sibyl,memory,cli,agent,hermes
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Environment :: Console
|
|
19
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
20
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
21
|
+
Classifier: Operating System :: MacOS
|
|
22
|
+
Requires-Python: >=3.10
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
License-File: LICENSE
|
|
25
|
+
Requires-Dist: sibyl-memory-client>=0.9.0
|
|
26
|
+
Requires-Dist: sibyl-memory-hermes>=0.5.0
|
|
27
|
+
Requires-Dist: pyyaml<7,>=6.0
|
|
28
|
+
Provides-Extra: mcp
|
|
29
|
+
Requires-Dist: sibyl-memory-mcp>=0.3.0; extra == "mcp"
|
|
30
|
+
Provides-Extra: dev
|
|
31
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+
# sibyl-memory-cli
|
|
35
|
+
|
|
36
|
+
Command-line interface for the **Sibyl Memory Plugin**.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install sibyl-memory-cli
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Sibyl Memory runs on Linux, macOS (Apple Silicon and Intel), and Windows through WSL2. Native Windows is not supported.
|
|
43
|
+
|
|
44
|
+
This pulls in `sibyl-memory-client` (the local SDK) and `sibyl-memory-hermes` (the Hermes provider) automatically.
|
|
45
|
+
|
|
46
|
+
## Commands
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
sibyl --version Print the installed versions: cli, client, mcp, hermes, langgraph.
|
|
50
|
+
sibyl init Open the browser activation page. Writes ~/.sibyl-memory/credentials.json.
|
|
51
|
+
Afterwards it offers to add or confirm your email (terminal only).
|
|
52
|
+
sibyl init --no-email Activate without the email prompt.
|
|
53
|
+
sibyl init --replace Re-activate this computer in place of its earlier sign-in (re-activation
|
|
54
|
+
never uses a second computer slot). At the account's computer limit
|
|
55
|
+
(Free: one computer) init lists the computers signed in and offers to
|
|
56
|
+
sign one out on the account page.
|
|
57
|
+
sibyl refresh Check your account now (an upgrade, a staking unlock or a plan change
|
|
58
|
+
lands at once), refresh the procedures, shims and hooks, and say what
|
|
59
|
+
changed. Exits 0 with no account (it says what to do), 2 when offline.
|
|
60
|
+
sibyl autosave [on|off|every N]
|
|
61
|
+
Pro automatic save: every N minutes of active work (30 to 240, default
|
|
62
|
+
60). On the free plan the setting is kept for the day you upgrade.
|
|
63
|
+
sibyl email Show your account email: confirmed, not confirmed, or none.
|
|
64
|
+
sibyl email add <address> Send a code to a new address, then confirm it.
|
|
65
|
+
sibyl email verify Send a code to the address you activated with, then confirm it.
|
|
66
|
+
sibyl email confirm <code> Confirm a code from the email (for scripts and non-interactive shells).
|
|
67
|
+
sibyl claim <cs_...> Link a card purchase from sibyllabs.org/pro to this account.
|
|
68
|
+
sibyl migrate Guided onboarding: back up your existing memory/agent files, wire Sibyl
|
|
69
|
+
into every detected harness, populate Sibyl Memory from the backup, and
|
|
70
|
+
optionally slim the instruction files it found (CLAUDE.md, AGENTS.md,
|
|
71
|
+
.cursorrules, ...). Backup-first, never destructive.
|
|
72
|
+
sibyl setup [target] Wire Sibyl as the memory provider for Hermes, Claude Code, and/or Codex,
|
|
73
|
+
and install the save and debloat procedures for each.
|
|
74
|
+
target is one of: hermes | claude-code | codex (default: detect all).
|
|
75
|
+
sibyl save Save: --fact "<text>" writes one fact; --status shows the last save; bare
|
|
76
|
+
prints how to run the save procedure in your agent. --capsule on Pro.
|
|
77
|
+
sibyl debloat Measure the instruction files your agent loads every start (--fyi, --json);
|
|
78
|
+
plan | apply [<file>] | auto <file> | manual <file> | undo [<file>].
|
|
79
|
+
sibyl skills install | status | reset <SAVE.md|DEBLOAT.md> | uninstall (run it before pip uninstall).
|
|
80
|
+
sibyl reminders on | off | quiet (save and debloat reminders; quiet silences Pro reports).
|
|
81
|
+
sibyl status Show local credentials, DB size, this computer's access, and the server's
|
|
82
|
+
view of your tier.
|
|
83
|
+
sibyl whoami One-line account summary (masked by default).
|
|
84
|
+
sibyl devices List the devices (active tokens) bound to your account, with the
|
|
85
|
+
account's computer limit when the api sends it (Free 1, Pro up to 10).
|
|
86
|
+
sibyl devices revoke N Revoke a device by index (run `sibyl devices` to see the indexes).
|
|
87
|
+
sibyl dashboard Open the account page at account.sibyllabs.org (no token in the URL; you
|
|
88
|
+
sign in there). Shows `sibyl status` while the page is not open yet.
|
|
89
|
+
sibyl upgrade Open the tier/billing flow: the account billing page when the server offers
|
|
90
|
+
it, otherwise the stake / USDC page through a one-time link.
|
|
91
|
+
sibyl update Check PyPI for newer releases of the installed Sibyl packages: cli, client,
|
|
92
|
+
hermes, the MCP server, and langgraph when installed.
|
|
93
|
+
sibyl update --apply Update the installed Sibyl packages in place (pip install -U), the MCP server
|
|
94
|
+
included; never installs one you do not have. This is the
|
|
95
|
+
canonical way to update the plugin, distinct from `sibyl upgrade` (which is
|
|
96
|
+
the tier/billing flow, not a package update).
|
|
97
|
+
sibyl health Run the SibylMemoryProvider self-check (schema version, DB path, tenant,
|
|
98
|
+
entitlement state, pinned key ids).
|
|
99
|
+
sibyl logout Sign this computer out: revoke it on the server, remove credentials.json and
|
|
100
|
+
entitlement.json (your memory.db is left untouched).
|
|
101
|
+
sibyl memory list [category] List stored entities, optionally filtered by category (--limit N).
|
|
102
|
+
`sibyl memory` never needs an account: your local data is always yours to read.
|
|
103
|
+
sibyl memory search <query> Full-text search across entities, state, reference, and journal (--limit N).
|
|
104
|
+
sibyl memory recall <cat> <name>
|
|
105
|
+
Recall a single entity by category + name.
|
|
106
|
+
sibyl memory adopt [--yes] Move memory written on this computer before sign-in into your account
|
|
107
|
+
(local, one transaction, nothing deleted; asks first if the store has
|
|
108
|
+
held another account). `sibyl init` does this on the first sign-in.
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Migrate (guided onboarding)
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
$ sibyl migrate
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`sibyl migrate` moves your accumulated agent memory into Sibyl without risking
|
|
118
|
+
your existing files:
|
|
119
|
+
|
|
120
|
+
1. **Back up first.** Every memory/agent file it finds (`CLAUDE.md`,
|
|
121
|
+
`AGENTS.md`, `.codex/config.toml`, `.hermes/*`, and similar) is copied to a
|
|
122
|
+
timestamped backup folder and byte-verified before anything else happens.
|
|
123
|
+
2. **Wire Sibyl** into every detected harness — Claude Code (via
|
|
124
|
+
`claude mcp add --scope user`), Codex (via `~/.codex/config.toml`), Hermes.
|
|
125
|
+
3. **Extract** — it prints a prompt you run in your own agent. The agent reads
|
|
126
|
+
only from the backup and writes structured memory through the `sibyl-memory`
|
|
127
|
+
tool. The extraction runs locally on your machine; Sibyl Labs never sees your
|
|
128
|
+
files or memory.
|
|
129
|
+
4. **Verify** the new entries that landed in your local DB.
|
|
130
|
+
5. **Optionally trim** the instruction files it found (`CLAUDE.md`, `AGENTS.md`,
|
|
131
|
+
`.cursorrules`, ...), one question per file, only if you confirm and only because
|
|
132
|
+
a verified backup of that file exists. Configuration files are never trimmed. Your
|
|
133
|
+
full pre-migration files are always preserved.
|
|
134
|
+
|
|
135
|
+
Flags: `--backup-dir PATH` (default: home), `--no-debloat` (skip the trim
|
|
136
|
+
step), `--yes` (skip the initial confirm; the trim step still asks separately).
|
|
137
|
+
|
|
138
|
+
> No warranty. Keep your backup until you've confirmed everything migrated.
|
|
139
|
+
> Sibyl Labs is not responsible for data loss.
|
|
140
|
+
|
|
141
|
+
## Activation
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
$ sibyl init
|
|
145
|
+
|
|
146
|
+
─ activation ───────────────────────────────────────────────
|
|
147
|
+
two paths · pick whichever fits your device
|
|
148
|
+
|
|
149
|
+
Session a1b2c3d4…e5f6
|
|
150
|
+
Code 437 480 (use this in the email panel)
|
|
151
|
+
Opening https://auth.sibyllabs.org/a1b2c3d4-…
|
|
152
|
+
|
|
153
|
+
desktop wallet · or email + code
|
|
154
|
+
this terminal will pick up automatically when you bind.
|
|
155
|
+
|
|
156
|
+
⠙ watching the network for your bind … 9:59 left
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
The browser opens the sign-in page. Sign in with your email and the code shown in the terminal, or with a desktop wallet (when the server offers it, a third path sends a small USDC amount from a mobile wallet). If you already have an account, `sibyl init` also prints an approve link on `account.sibyllabs.org`: open it on a computer that is already signed in and type the same code. The terminal picks up the moment the binding lands. Credentials are written to `~/.sibyl-memory/credentials.json` at mode 0600, and this computer's signed access file to `~/.sibyl-memory/entitlement.json` (0600).
|
|
160
|
+
|
|
161
|
+
An account is required for agents to use memory (MCP, Hermes, LangGraph, the SDK). `sibyl init` is the sign-in; there is no separate login command. The access pass is re-checked about once a day (and at the end of a paid plan) and keeps working offline for up to 14 days. Memory written on this computer before you signed in moves into your account at that first sign-in (on this computer only); if the store has held another account, `sibyl init` leaves it and `sibyl memory adopt` asks first.
|
|
162
|
+
|
|
163
|
+
## Email
|
|
164
|
+
|
|
165
|
+
Every account needs a confirmed email for receipts, security notices, purchases and recovery.
|
|
166
|
+
Your local memory works either way. Wallet activation stays available.
|
|
167
|
+
|
|
168
|
+
```bash
|
|
169
|
+
$ sibyl email add you@example.com
|
|
170
|
+
code sent to y***@e***.com. it expires in 10 minutes.
|
|
171
|
+
code from the email: 123456
|
|
172
|
+
✓ Email confirmed. Your account is complete.
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
`sibyl email verify` confirms the address you activated with. Confirming from the terminal keeps
|
|
176
|
+
this computer signed in and signs out any other computer that was set up with the address before
|
|
177
|
+
you confirmed it.
|
|
178
|
+
|
|
179
|
+
## Upgrade
|
|
180
|
+
|
|
181
|
+
Free is 5 MB of local memory. Pro removes the cap: $12/month or $108/year (plus applicable tax by card), bought at
|
|
182
|
+
`sibyllabs.org/checkout` or through `sibyl upgrade`. Holding 100,000 $SIBYL staked also gives Pro.
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
$ sibyl upgrade
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
`sibyl upgrade` shows your account and current tier, then opens the purchase page in your
|
|
189
|
+
browser: the account billing page (`https://account.sibyllabs.org/billing`; sign in there and buy
|
|
190
|
+
Pro) when the server offers it, otherwise a one-time exchange link. No token ever rides the URL.
|
|
191
|
+
It then waits for the plan change. A card purchase made elsewhere can be linked with
|
|
192
|
+
`sibyl claim <cs_...>`.
|
|
193
|
+
|
|
194
|
+
When the tier changes, the CLI rewrites `credentials.json` and clears `tier_cache.json` so your next write picks up the new entitlement without delay.
|
|
195
|
+
|
|
196
|
+
## Status
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
$ sibyl status
|
|
200
|
+
|
|
201
|
+
P L U G I N
|
|
202
|
+
Version cli 0.5.0 · client 0.9.0
|
|
203
|
+
L O C A L
|
|
204
|
+
Credentials ~/.sibyl-memory/credentials.json
|
|
205
|
+
Account a1b2c3d4-e5f6-4789-8abc-def012345678
|
|
206
|
+
Tier Free
|
|
207
|
+
Wallet 0xa1b2c3d4e5f60718293a4b5c6d7e8f9012345678
|
|
208
|
+
Email you@example.com
|
|
209
|
+
Issued 2026-05-16 18:12 UTC
|
|
210
|
+
Platform Linux (x86_64)
|
|
211
|
+
DB path ~/.sibyl-memory/memory.db
|
|
212
|
+
DB size 1,247,300 bytes (1.19 MB · 23.8% of free cap)
|
|
213
|
+
|
|
214
|
+
A C C E S S
|
|
215
|
+
Access active · re-checks in 24h
|
|
216
|
+
Tier cache free (checked 2026-05-16 18:12 UTC)
|
|
217
|
+
|
|
218
|
+
S E R V E R
|
|
219
|
+
Tier Free
|
|
220
|
+
Source free
|
|
221
|
+
Cap bytes 5,242,880
|
|
222
|
+
Email not confirmed · run sibyl email verify
|
|
223
|
+
Dashboard https://account.sibyllabs.org
|
|
224
|
+
|
|
225
|
+
L I F E C Y C L E
|
|
226
|
+
save last never · 0 writes since · manual (automatic on Pro)
|
|
227
|
+
context no always-load files found here
|
|
228
|
+
skills not installed · sibyl skills install
|
|
229
|
+
reminders on
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
`$SIBYL held`, `Threshold` and `Qualified` rows appear under `SERVER` when the server reports staking details.
|
|
233
|
+
|
|
234
|
+
`Email`, `Account` and `Dashboard` rows appear when the server reports them. On a paid plan a `Plan` row under `Access` shows the billing date when the server sends it: `Pro · renews 8 Oct 2027` for a renewing card plan, `Pro · ends 8 Oct 2027` when the plan is set to end (a cancellation, or a fixed term). The `Tier` rows always show the tier of this computer's current access pass.
|
|
235
|
+
|
|
236
|
+
`sibyl status` runs one access check-in when online (the check-in is the status). The `Access` row reads one of:
|
|
237
|
+
|
|
238
|
+
| Row | Meaning | What to do |
|
|
239
|
+
|---|---|---|
|
|
240
|
+
| `active · re-checks in <h>h` | this computer is signed in; the access pass is checked again in about <h> hours (not a billing date) | nothing |
|
|
241
|
+
| `offline · <n> days of grace left · connect once to renew` | not reached the server lately | connect to the internet once |
|
|
242
|
+
| `paused · offline too long · connect to the internet, or run sibyl init` | offline more than 14 days | connect; if it stays paused, `sibyl init` |
|
|
243
|
+
| `setup not finished · connect to the internet once to finish setup` | credentials from before 0.9.0 and no check-in yet | connect once |
|
|
244
|
+
| `signed out · run sibyl init` | signed out, revoked, or the sign-in expired | `sibyl init` |
|
|
245
|
+
| `under review · email sibyl@sibyllabs.org` | the account is under review | email us |
|
|
246
|
+
|
|
247
|
+
When the server cannot be reached, the account rows come from the last check-in, labeled `as of <date>`. With no credentials at all, `sibyl status` says so and that agents cannot use memory until you run `sibyl init`; your local data is kept.
|
|
248
|
+
|
|
249
|
+
If `LOCAL` and `SERVER` tiers diverge, run `sibyl refresh` to pick up the server plan (or `sibyl init --force` to re-activate).
|
|
250
|
+
|
|
251
|
+
## Environment overrides
|
|
252
|
+
|
|
253
|
+
For internal testing only:
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
SIBYL_API_BASE=https://staging.example.internal sibyl init
|
|
257
|
+
SIBYL_ACTIVATE_BASE=https://staging.example.internal/plugin/activate sibyl init
|
|
258
|
+
SIBYL_UPGRADE_BASE=https://staging.example.internal/plugin/upgrade sibyl upgrade
|
|
259
|
+
SIBYL_ACCOUNT_BASE=https://account.staging.example.internal sibyl dashboard
|
|
260
|
+
SIBYL_NONINTERACTIVE=1 sibyl init # never prompt (same as a non-TTY shell)
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
## Security
|
|
264
|
+
|
|
265
|
+
- `credentials.json` and `entitlement.json` are written atomically at mode 0600.
|
|
266
|
+
- The access file is verified offline against a public key pinned in `sibyl-memory-client`; it is never printed.
|
|
267
|
+
- `session_token` is never printed in full: only a short slice.
|
|
268
|
+
- No token rides a browser URL: `sibyl dashboard` opens the account page bare, and `sibyl upgrade`
|
|
269
|
+
uses a one-time exchange link.
|
|
270
|
+
- No memory content ever transits these endpoints. `sibyl status` reads only the size of `memory.db`; `sibyl memory list|search|recall|adopt` read your memory locally and send none of it anywhere.
|
|
271
|
+
- Wallet operations happen in the browser. The CLI sees only the resulting tier change.
|
|
272
|
+
|
|
273
|
+
## Save and debloat
|
|
274
|
+
|
|
275
|
+
**Save.** At the end of a session, or after a big block of work, your agent writes what happened
|
|
276
|
+
into Sibyl Memory through the plugin's own tools: the decisions made and why (journal), the
|
|
277
|
+
people, projects and products touched (entities), what to pick up next time and the open
|
|
278
|
+
warnings (session state), the ranked priorities, and it closes what died (archive). A delta
|
|
279
|
+
marker means a second save in the same day captures only what changed. It may offer to turn a
|
|
280
|
+
repeated pattern into a reusable skill; that is offered, never forced. Nothing in a save leaves
|
|
281
|
+
your machine.
|
|
282
|
+
|
|
283
|
+
**Debloat.** Sibyl measures the files your agent loads on every session start (`CLAUDE.md`,
|
|
284
|
+
`AGENTS.md`, `.cursorrules` and the rest of the scan set), deterministically (`chars/4`,
|
|
285
|
+
labeled `MEASURED~`), and when they are heavy, trims the accreted history out of them without
|
|
286
|
+
losing a byte: the history moves out and a one-line pointer stays. On the free plan the history
|
|
287
|
+
moves to a sibling `*-history` file. On Pro it is stored in Sibyl Memory as a reference document,
|
|
288
|
+
so it stays searchable, and the measurement and trim run by themselves under a policy you set
|
|
289
|
+
once.
|
|
290
|
+
|
|
291
|
+
| | Free (activated account) | Pro |
|
|
292
|
+
|---|---|---|
|
|
293
|
+
| The procedures in `~/.sibyl-memory/skills/` (`SAVE.md`, `DEBLOAT.md`), `/sibyl-save` and `/sibyl-debloat` in Claude Code, skills in Hermes and Codex, a block in Codex's `AGENTS.md`, the `save` and `debloat` MCP prompts | yes | yes |
|
|
294
|
+
| `sibyl save`, `sibyl debloat` (measure, plan, apply, undo) | yes | yes |
|
|
295
|
+
| Reminders (one quiet line; `sibyl reminders off`) | yes | replaced by a one-line report of what ran |
|
|
296
|
+
| Where trimmed history goes | a sibling `*-history` file | Sibyl Memory, plus a byte-verified backup |
|
|
297
|
+
| Automatic debloat | no | yes: `propose` by default; a file is trimmed by itself only after you run `sibyl debloat auto <file>` (that file at its path, never the same name elsewhere) |
|
|
298
|
+
| Automatic save by active time: once early (after 5 memory writes or a compaction), then about every 60 minutes of active work, only when there is something to save, at most 8 a session and 12 a day (`sibyl autosave every <30-240>` or `sibyl autosave off`). Claude Code: the Stop hook asks your agent to run the save procedure headless (a scripted `claude -p` run is never asked); Cursor, Codex and other MCP hosts: a `notice` on the next tool result; Hermes: a note in the next prefetch. A session capsule (counts only) at compaction and session end. Each automatic save is one extra model turn that reads and writes memory | no | yes |
|
|
299
|
+
| Skill proposals: Sibyl finds repeated work in your journal (locally, no network), names up to 3 at a session start at most once a day, and creates nothing without a yes (`/sibyl-save curate`, or `sibyl skills proposals accept <id>`, which writes the skill for Claude Code, Codex and Hermes) | no (`/sibyl-save` still offers skills when you run it) | yes |
|
|
300
|
+
|
|
301
|
+
The procedures are vendored, with attribution, from the public MIT repos
|
|
302
|
+
[sibyl-save](https://github.com/Sibyl-Labs/sibyl-save) and
|
|
303
|
+
[debloat](https://github.com/Sibyl-Labs/debloat); both stay standalone and account-free.
|
|
304
|
+
|
|
305
|
+
Uninstalling: run `sibyl skills uninstall` first. It removes the Claude Code hooks in
|
|
306
|
+
`~/.claude/settings.json`, the skill shims and the Codex block (files you edited are kept); then
|
|
307
|
+
`pip uninstall` the packages. The hooks call this package's `sibyl` command: if the package goes
|
|
308
|
+
first they exit quietly, but they stay in your settings until you reinstall and run
|
|
309
|
+
`sibyl skills uninstall`, or delete the five `sibyl hook` entries by hand.
|
|
310
|
+
|
|
311
|
+
Privacy: the lifecycle reads your instruction files to measure and trim them locally; no file
|
|
312
|
+
content and no conversation content ever leaves your machine.
|
|
313
|
+
|
|
314
|
+
Forks: a gate-stripped fork can run the lifecycle code locally (MIT allows it). It gains nothing
|
|
315
|
+
hosted, and its trims land in a store the official path cannot recognize as Pro. No file, flag
|
|
316
|
+
or environment variable turns the automation on for a free account.
|
|
317
|
+
|
|
318
|
+
Commands: `sibyl save` (`--fact`, `--status`, `--capsule` on Pro), `sibyl debloat` (`--fyi`,
|
|
319
|
+
`--json`, `plan`, `apply [<file>]`, `auto <file>`, `manual <file>`, `undo [<file>]`),
|
|
320
|
+
`sibyl skills install|status|reset|uninstall`, `sibyl skills proposals [show|accept|reject|mute|unmute]`
|
|
321
|
+
(Pro), `sibyl autosave [on|off|every <minutes>]`, `sibyl reminders on|off|quiet`. `sibyl setup`
|
|
322
|
+
installs the procedures and wires them: Claude Code gets the two skills plus five hooks in
|
|
323
|
+
`~/.claude/settings.json` (`sibyl hook <event>`, installed by setup, not for manual use; any
|
|
324
|
+
other hook you have is left alone; each hook exits 0 quietly if the `sibyl` it names is gone),
|
|
325
|
+
Codex gets a marked block in `~/.codex/AGENTS.md` and two skills in `~/.codex/skills/`, Hermes
|
|
326
|
+
gets two skills in `$HERMES_HOME/skills/`. `sibyl debloat auto <file>` authorizes that one file
|
|
327
|
+
at its path. On Pro the Stop hook asks the agent to save once early (after 5 memory writes or a
|
|
328
|
+
compaction), then about every hour of active work (`sibyl autosave`). `sibyl migrate` now slims the instruction files it
|
|
329
|
+
found (`CLAUDE.md`, `AGENTS.md`, `.cursorrules`, ...), one question per file.
|
|
330
|
+
|
|
331
|
+
## License
|
|
332
|
+
|
|
333
|
+
MIT.
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
# sibyl-memory-cli
|
|
2
|
+
|
|
3
|
+
Command-line interface for the **Sibyl Memory Plugin**.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
pip install sibyl-memory-cli
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Sibyl Memory runs on Linux, macOS (Apple Silicon and Intel), and Windows through WSL2. Native Windows is not supported.
|
|
10
|
+
|
|
11
|
+
This pulls in `sibyl-memory-client` (the local SDK) and `sibyl-memory-hermes` (the Hermes provider) automatically.
|
|
12
|
+
|
|
13
|
+
## Commands
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
sibyl --version Print the installed versions: cli, client, mcp, hermes, langgraph.
|
|
17
|
+
sibyl init Open the browser activation page. Writes ~/.sibyl-memory/credentials.json.
|
|
18
|
+
Afterwards it offers to add or confirm your email (terminal only).
|
|
19
|
+
sibyl init --no-email Activate without the email prompt.
|
|
20
|
+
sibyl init --replace Re-activate this computer in place of its earlier sign-in (re-activation
|
|
21
|
+
never uses a second computer slot). At the account's computer limit
|
|
22
|
+
(Free: one computer) init lists the computers signed in and offers to
|
|
23
|
+
sign one out on the account page.
|
|
24
|
+
sibyl refresh Check your account now (an upgrade, a staking unlock or a plan change
|
|
25
|
+
lands at once), refresh the procedures, shims and hooks, and say what
|
|
26
|
+
changed. Exits 0 with no account (it says what to do), 2 when offline.
|
|
27
|
+
sibyl autosave [on|off|every N]
|
|
28
|
+
Pro automatic save: every N minutes of active work (30 to 240, default
|
|
29
|
+
60). On the free plan the setting is kept for the day you upgrade.
|
|
30
|
+
sibyl email Show your account email: confirmed, not confirmed, or none.
|
|
31
|
+
sibyl email add <address> Send a code to a new address, then confirm it.
|
|
32
|
+
sibyl email verify Send a code to the address you activated with, then confirm it.
|
|
33
|
+
sibyl email confirm <code> Confirm a code from the email (for scripts and non-interactive shells).
|
|
34
|
+
sibyl claim <cs_...> Link a card purchase from sibyllabs.org/pro to this account.
|
|
35
|
+
sibyl migrate Guided onboarding: back up your existing memory/agent files, wire Sibyl
|
|
36
|
+
into every detected harness, populate Sibyl Memory from the backup, and
|
|
37
|
+
optionally slim the instruction files it found (CLAUDE.md, AGENTS.md,
|
|
38
|
+
.cursorrules, ...). Backup-first, never destructive.
|
|
39
|
+
sibyl setup [target] Wire Sibyl as the memory provider for Hermes, Claude Code, and/or Codex,
|
|
40
|
+
and install the save and debloat procedures for each.
|
|
41
|
+
target is one of: hermes | claude-code | codex (default: detect all).
|
|
42
|
+
sibyl save Save: --fact "<text>" writes one fact; --status shows the last save; bare
|
|
43
|
+
prints how to run the save procedure in your agent. --capsule on Pro.
|
|
44
|
+
sibyl debloat Measure the instruction files your agent loads every start (--fyi, --json);
|
|
45
|
+
plan | apply [<file>] | auto <file> | manual <file> | undo [<file>].
|
|
46
|
+
sibyl skills install | status | reset <SAVE.md|DEBLOAT.md> | uninstall (run it before pip uninstall).
|
|
47
|
+
sibyl reminders on | off | quiet (save and debloat reminders; quiet silences Pro reports).
|
|
48
|
+
sibyl status Show local credentials, DB size, this computer's access, and the server's
|
|
49
|
+
view of your tier.
|
|
50
|
+
sibyl whoami One-line account summary (masked by default).
|
|
51
|
+
sibyl devices List the devices (active tokens) bound to your account, with the
|
|
52
|
+
account's computer limit when the api sends it (Free 1, Pro up to 10).
|
|
53
|
+
sibyl devices revoke N Revoke a device by index (run `sibyl devices` to see the indexes).
|
|
54
|
+
sibyl dashboard Open the account page at account.sibyllabs.org (no token in the URL; you
|
|
55
|
+
sign in there). Shows `sibyl status` while the page is not open yet.
|
|
56
|
+
sibyl upgrade Open the tier/billing flow: the account billing page when the server offers
|
|
57
|
+
it, otherwise the stake / USDC page through a one-time link.
|
|
58
|
+
sibyl update Check PyPI for newer releases of the installed Sibyl packages: cli, client,
|
|
59
|
+
hermes, the MCP server, and langgraph when installed.
|
|
60
|
+
sibyl update --apply Update the installed Sibyl packages in place (pip install -U), the MCP server
|
|
61
|
+
included; never installs one you do not have. This is the
|
|
62
|
+
canonical way to update the plugin, distinct from `sibyl upgrade` (which is
|
|
63
|
+
the tier/billing flow, not a package update).
|
|
64
|
+
sibyl health Run the SibylMemoryProvider self-check (schema version, DB path, tenant,
|
|
65
|
+
entitlement state, pinned key ids).
|
|
66
|
+
sibyl logout Sign this computer out: revoke it on the server, remove credentials.json and
|
|
67
|
+
entitlement.json (your memory.db is left untouched).
|
|
68
|
+
sibyl memory list [category] List stored entities, optionally filtered by category (--limit N).
|
|
69
|
+
`sibyl memory` never needs an account: your local data is always yours to read.
|
|
70
|
+
sibyl memory search <query> Full-text search across entities, state, reference, and journal (--limit N).
|
|
71
|
+
sibyl memory recall <cat> <name>
|
|
72
|
+
Recall a single entity by category + name.
|
|
73
|
+
sibyl memory adopt [--yes] Move memory written on this computer before sign-in into your account
|
|
74
|
+
(local, one transaction, nothing deleted; asks first if the store has
|
|
75
|
+
held another account). `sibyl init` does this on the first sign-in.
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
## Migrate (guided onboarding)
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
$ sibyl migrate
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
`sibyl migrate` moves your accumulated agent memory into Sibyl without risking
|
|
85
|
+
your existing files:
|
|
86
|
+
|
|
87
|
+
1. **Back up first.** Every memory/agent file it finds (`CLAUDE.md`,
|
|
88
|
+
`AGENTS.md`, `.codex/config.toml`, `.hermes/*`, and similar) is copied to a
|
|
89
|
+
timestamped backup folder and byte-verified before anything else happens.
|
|
90
|
+
2. **Wire Sibyl** into every detected harness — Claude Code (via
|
|
91
|
+
`claude mcp add --scope user`), Codex (via `~/.codex/config.toml`), Hermes.
|
|
92
|
+
3. **Extract** — it prints a prompt you run in your own agent. The agent reads
|
|
93
|
+
only from the backup and writes structured memory through the `sibyl-memory`
|
|
94
|
+
tool. The extraction runs locally on your machine; Sibyl Labs never sees your
|
|
95
|
+
files or memory.
|
|
96
|
+
4. **Verify** the new entries that landed in your local DB.
|
|
97
|
+
5. **Optionally trim** the instruction files it found (`CLAUDE.md`, `AGENTS.md`,
|
|
98
|
+
`.cursorrules`, ...), one question per file, only if you confirm and only because
|
|
99
|
+
a verified backup of that file exists. Configuration files are never trimmed. Your
|
|
100
|
+
full pre-migration files are always preserved.
|
|
101
|
+
|
|
102
|
+
Flags: `--backup-dir PATH` (default: home), `--no-debloat` (skip the trim
|
|
103
|
+
step), `--yes` (skip the initial confirm; the trim step still asks separately).
|
|
104
|
+
|
|
105
|
+
> No warranty. Keep your backup until you've confirmed everything migrated.
|
|
106
|
+
> Sibyl Labs is not responsible for data loss.
|
|
107
|
+
|
|
108
|
+
## Activation
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
$ sibyl init
|
|
112
|
+
|
|
113
|
+
─ activation ───────────────────────────────────────────────
|
|
114
|
+
two paths · pick whichever fits your device
|
|
115
|
+
|
|
116
|
+
Session a1b2c3d4…e5f6
|
|
117
|
+
Code 437 480 (use this in the email panel)
|
|
118
|
+
Opening https://auth.sibyllabs.org/a1b2c3d4-…
|
|
119
|
+
|
|
120
|
+
desktop wallet · or email + code
|
|
121
|
+
this terminal will pick up automatically when you bind.
|
|
122
|
+
|
|
123
|
+
⠙ watching the network for your bind … 9:59 left
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
The browser opens the sign-in page. Sign in with your email and the code shown in the terminal, or with a desktop wallet (when the server offers it, a third path sends a small USDC amount from a mobile wallet). If you already have an account, `sibyl init` also prints an approve link on `account.sibyllabs.org`: open it on a computer that is already signed in and type the same code. The terminal picks up the moment the binding lands. Credentials are written to `~/.sibyl-memory/credentials.json` at mode 0600, and this computer's signed access file to `~/.sibyl-memory/entitlement.json` (0600).
|
|
127
|
+
|
|
128
|
+
An account is required for agents to use memory (MCP, Hermes, LangGraph, the SDK). `sibyl init` is the sign-in; there is no separate login command. The access pass is re-checked about once a day (and at the end of a paid plan) and keeps working offline for up to 14 days. Memory written on this computer before you signed in moves into your account at that first sign-in (on this computer only); if the store has held another account, `sibyl init` leaves it and `sibyl memory adopt` asks first.
|
|
129
|
+
|
|
130
|
+
## Email
|
|
131
|
+
|
|
132
|
+
Every account needs a confirmed email for receipts, security notices, purchases and recovery.
|
|
133
|
+
Your local memory works either way. Wallet activation stays available.
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
$ sibyl email add you@example.com
|
|
137
|
+
code sent to y***@e***.com. it expires in 10 minutes.
|
|
138
|
+
code from the email: 123456
|
|
139
|
+
✓ Email confirmed. Your account is complete.
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
`sibyl email verify` confirms the address you activated with. Confirming from the terminal keeps
|
|
143
|
+
this computer signed in and signs out any other computer that was set up with the address before
|
|
144
|
+
you confirmed it.
|
|
145
|
+
|
|
146
|
+
## Upgrade
|
|
147
|
+
|
|
148
|
+
Free is 5 MB of local memory. Pro removes the cap: $12/month or $108/year (plus applicable tax by card), bought at
|
|
149
|
+
`sibyllabs.org/checkout` or through `sibyl upgrade`. Holding 100,000 $SIBYL staked also gives Pro.
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
$ sibyl upgrade
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
`sibyl upgrade` shows your account and current tier, then opens the purchase page in your
|
|
156
|
+
browser: the account billing page (`https://account.sibyllabs.org/billing`; sign in there and buy
|
|
157
|
+
Pro) when the server offers it, otherwise a one-time exchange link. No token ever rides the URL.
|
|
158
|
+
It then waits for the plan change. A card purchase made elsewhere can be linked with
|
|
159
|
+
`sibyl claim <cs_...>`.
|
|
160
|
+
|
|
161
|
+
When the tier changes, the CLI rewrites `credentials.json` and clears `tier_cache.json` so your next write picks up the new entitlement without delay.
|
|
162
|
+
|
|
163
|
+
## Status
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
$ sibyl status
|
|
167
|
+
|
|
168
|
+
P L U G I N
|
|
169
|
+
Version cli 0.5.0 · client 0.9.0
|
|
170
|
+
L O C A L
|
|
171
|
+
Credentials ~/.sibyl-memory/credentials.json
|
|
172
|
+
Account a1b2c3d4-e5f6-4789-8abc-def012345678
|
|
173
|
+
Tier Free
|
|
174
|
+
Wallet 0xa1b2c3d4e5f60718293a4b5c6d7e8f9012345678
|
|
175
|
+
Email you@example.com
|
|
176
|
+
Issued 2026-05-16 18:12 UTC
|
|
177
|
+
Platform Linux (x86_64)
|
|
178
|
+
DB path ~/.sibyl-memory/memory.db
|
|
179
|
+
DB size 1,247,300 bytes (1.19 MB · 23.8% of free cap)
|
|
180
|
+
|
|
181
|
+
A C C E S S
|
|
182
|
+
Access active · re-checks in 24h
|
|
183
|
+
Tier cache free (checked 2026-05-16 18:12 UTC)
|
|
184
|
+
|
|
185
|
+
S E R V E R
|
|
186
|
+
Tier Free
|
|
187
|
+
Source free
|
|
188
|
+
Cap bytes 5,242,880
|
|
189
|
+
Email not confirmed · run sibyl email verify
|
|
190
|
+
Dashboard https://account.sibyllabs.org
|
|
191
|
+
|
|
192
|
+
L I F E C Y C L E
|
|
193
|
+
save last never · 0 writes since · manual (automatic on Pro)
|
|
194
|
+
context no always-load files found here
|
|
195
|
+
skills not installed · sibyl skills install
|
|
196
|
+
reminders on
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
`$SIBYL held`, `Threshold` and `Qualified` rows appear under `SERVER` when the server reports staking details.
|
|
200
|
+
|
|
201
|
+
`Email`, `Account` and `Dashboard` rows appear when the server reports them. On a paid plan a `Plan` row under `Access` shows the billing date when the server sends it: `Pro · renews 8 Oct 2027` for a renewing card plan, `Pro · ends 8 Oct 2027` when the plan is set to end (a cancellation, or a fixed term). The `Tier` rows always show the tier of this computer's current access pass.
|
|
202
|
+
|
|
203
|
+
`sibyl status` runs one access check-in when online (the check-in is the status). The `Access` row reads one of:
|
|
204
|
+
|
|
205
|
+
| Row | Meaning | What to do |
|
|
206
|
+
|---|---|---|
|
|
207
|
+
| `active · re-checks in <h>h` | this computer is signed in; the access pass is checked again in about <h> hours (not a billing date) | nothing |
|
|
208
|
+
| `offline · <n> days of grace left · connect once to renew` | not reached the server lately | connect to the internet once |
|
|
209
|
+
| `paused · offline too long · connect to the internet, or run sibyl init` | offline more than 14 days | connect; if it stays paused, `sibyl init` |
|
|
210
|
+
| `setup not finished · connect to the internet once to finish setup` | credentials from before 0.9.0 and no check-in yet | connect once |
|
|
211
|
+
| `signed out · run sibyl init` | signed out, revoked, or the sign-in expired | `sibyl init` |
|
|
212
|
+
| `under review · email sibyl@sibyllabs.org` | the account is under review | email us |
|
|
213
|
+
|
|
214
|
+
When the server cannot be reached, the account rows come from the last check-in, labeled `as of <date>`. With no credentials at all, `sibyl status` says so and that agents cannot use memory until you run `sibyl init`; your local data is kept.
|
|
215
|
+
|
|
216
|
+
If `LOCAL` and `SERVER` tiers diverge, run `sibyl refresh` to pick up the server plan (or `sibyl init --force` to re-activate).
|
|
217
|
+
|
|
218
|
+
## Environment overrides
|
|
219
|
+
|
|
220
|
+
For internal testing only:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
SIBYL_API_BASE=https://staging.example.internal sibyl init
|
|
224
|
+
SIBYL_ACTIVATE_BASE=https://staging.example.internal/plugin/activate sibyl init
|
|
225
|
+
SIBYL_UPGRADE_BASE=https://staging.example.internal/plugin/upgrade sibyl upgrade
|
|
226
|
+
SIBYL_ACCOUNT_BASE=https://account.staging.example.internal sibyl dashboard
|
|
227
|
+
SIBYL_NONINTERACTIVE=1 sibyl init # never prompt (same as a non-TTY shell)
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Security
|
|
231
|
+
|
|
232
|
+
- `credentials.json` and `entitlement.json` are written atomically at mode 0600.
|
|
233
|
+
- The access file is verified offline against a public key pinned in `sibyl-memory-client`; it is never printed.
|
|
234
|
+
- `session_token` is never printed in full: only a short slice.
|
|
235
|
+
- No token rides a browser URL: `sibyl dashboard` opens the account page bare, and `sibyl upgrade`
|
|
236
|
+
uses a one-time exchange link.
|
|
237
|
+
- No memory content ever transits these endpoints. `sibyl status` reads only the size of `memory.db`; `sibyl memory list|search|recall|adopt` read your memory locally and send none of it anywhere.
|
|
238
|
+
- Wallet operations happen in the browser. The CLI sees only the resulting tier change.
|
|
239
|
+
|
|
240
|
+
## Save and debloat
|
|
241
|
+
|
|
242
|
+
**Save.** At the end of a session, or after a big block of work, your agent writes what happened
|
|
243
|
+
into Sibyl Memory through the plugin's own tools: the decisions made and why (journal), the
|
|
244
|
+
people, projects and products touched (entities), what to pick up next time and the open
|
|
245
|
+
warnings (session state), the ranked priorities, and it closes what died (archive). A delta
|
|
246
|
+
marker means a second save in the same day captures only what changed. It may offer to turn a
|
|
247
|
+
repeated pattern into a reusable skill; that is offered, never forced. Nothing in a save leaves
|
|
248
|
+
your machine.
|
|
249
|
+
|
|
250
|
+
**Debloat.** Sibyl measures the files your agent loads on every session start (`CLAUDE.md`,
|
|
251
|
+
`AGENTS.md`, `.cursorrules` and the rest of the scan set), deterministically (`chars/4`,
|
|
252
|
+
labeled `MEASURED~`), and when they are heavy, trims the accreted history out of them without
|
|
253
|
+
losing a byte: the history moves out and a one-line pointer stays. On the free plan the history
|
|
254
|
+
moves to a sibling `*-history` file. On Pro it is stored in Sibyl Memory as a reference document,
|
|
255
|
+
so it stays searchable, and the measurement and trim run by themselves under a policy you set
|
|
256
|
+
once.
|
|
257
|
+
|
|
258
|
+
| | Free (activated account) | Pro |
|
|
259
|
+
|---|---|---|
|
|
260
|
+
| The procedures in `~/.sibyl-memory/skills/` (`SAVE.md`, `DEBLOAT.md`), `/sibyl-save` and `/sibyl-debloat` in Claude Code, skills in Hermes and Codex, a block in Codex's `AGENTS.md`, the `save` and `debloat` MCP prompts | yes | yes |
|
|
261
|
+
| `sibyl save`, `sibyl debloat` (measure, plan, apply, undo) | yes | yes |
|
|
262
|
+
| Reminders (one quiet line; `sibyl reminders off`) | yes | replaced by a one-line report of what ran |
|
|
263
|
+
| Where trimmed history goes | a sibling `*-history` file | Sibyl Memory, plus a byte-verified backup |
|
|
264
|
+
| Automatic debloat | no | yes: `propose` by default; a file is trimmed by itself only after you run `sibyl debloat auto <file>` (that file at its path, never the same name elsewhere) |
|
|
265
|
+
| Automatic save by active time: once early (after 5 memory writes or a compaction), then about every 60 minutes of active work, only when there is something to save, at most 8 a session and 12 a day (`sibyl autosave every <30-240>` or `sibyl autosave off`). Claude Code: the Stop hook asks your agent to run the save procedure headless (a scripted `claude -p` run is never asked); Cursor, Codex and other MCP hosts: a `notice` on the next tool result; Hermes: a note in the next prefetch. A session capsule (counts only) at compaction and session end. Each automatic save is one extra model turn that reads and writes memory | no | yes |
|
|
266
|
+
| Skill proposals: Sibyl finds repeated work in your journal (locally, no network), names up to 3 at a session start at most once a day, and creates nothing without a yes (`/sibyl-save curate`, or `sibyl skills proposals accept <id>`, which writes the skill for Claude Code, Codex and Hermes) | no (`/sibyl-save` still offers skills when you run it) | yes |
|
|
267
|
+
|
|
268
|
+
The procedures are vendored, with attribution, from the public MIT repos
|
|
269
|
+
[sibyl-save](https://github.com/Sibyl-Labs/sibyl-save) and
|
|
270
|
+
[debloat](https://github.com/Sibyl-Labs/debloat); both stay standalone and account-free.
|
|
271
|
+
|
|
272
|
+
Uninstalling: run `sibyl skills uninstall` first. It removes the Claude Code hooks in
|
|
273
|
+
`~/.claude/settings.json`, the skill shims and the Codex block (files you edited are kept); then
|
|
274
|
+
`pip uninstall` the packages. The hooks call this package's `sibyl` command: if the package goes
|
|
275
|
+
first they exit quietly, but they stay in your settings until you reinstall and run
|
|
276
|
+
`sibyl skills uninstall`, or delete the five `sibyl hook` entries by hand.
|
|
277
|
+
|
|
278
|
+
Privacy: the lifecycle reads your instruction files to measure and trim them locally; no file
|
|
279
|
+
content and no conversation content ever leaves your machine.
|
|
280
|
+
|
|
281
|
+
Forks: a gate-stripped fork can run the lifecycle code locally (MIT allows it). It gains nothing
|
|
282
|
+
hosted, and its trims land in a store the official path cannot recognize as Pro. No file, flag
|
|
283
|
+
or environment variable turns the automation on for a free account.
|
|
284
|
+
|
|
285
|
+
Commands: `sibyl save` (`--fact`, `--status`, `--capsule` on Pro), `sibyl debloat` (`--fyi`,
|
|
286
|
+
`--json`, `plan`, `apply [<file>]`, `auto <file>`, `manual <file>`, `undo [<file>]`),
|
|
287
|
+
`sibyl skills install|status|reset|uninstall`, `sibyl skills proposals [show|accept|reject|mute|unmute]`
|
|
288
|
+
(Pro), `sibyl autosave [on|off|every <minutes>]`, `sibyl reminders on|off|quiet`. `sibyl setup`
|
|
289
|
+
installs the procedures and wires them: Claude Code gets the two skills plus five hooks in
|
|
290
|
+
`~/.claude/settings.json` (`sibyl hook <event>`, installed by setup, not for manual use; any
|
|
291
|
+
other hook you have is left alone; each hook exits 0 quietly if the `sibyl` it names is gone),
|
|
292
|
+
Codex gets a marked block in `~/.codex/AGENTS.md` and two skills in `~/.codex/skills/`, Hermes
|
|
293
|
+
gets two skills in `$HERMES_HOME/skills/`. `sibyl debloat auto <file>` authorizes that one file
|
|
294
|
+
at its path. On Pro the Stop hook asks the agent to save once early (after 5 memory writes or a
|
|
295
|
+
compaction), then about every hour of active work (`sibyl autosave`). `sibyl migrate` now slims the instruction files it
|
|
296
|
+
found (`CLAUDE.md`, `AGENTS.md`, `.cursorrules`, ...), one question per file.
|
|
297
|
+
|
|
298
|
+
## License
|
|
299
|
+
|
|
300
|
+
MIT.
|