eternal-buckets
v3.3.0
Published
Decentralized indexing, tagging, and visualization engine for Agnamo/Oujiji — password-gated npm plugin. Lean core: static dashboard, indexing, tagging, keyword query. Install eternal-buckets-pro for the live dashboard server, semantic search, eb watch, a
Maintainers
Readme
Eternal Buckets (eb)
Local decentralized visualization, indexing, and tagging engine for the Oujiji & Agnamo ecosystems.
Eternal Buckets scans folder structures, builds machine-readable manifests, and compiles an HTML dashboard. This is the lean core package — one runtime dependency (open), no native modules, no bundled ML model.
Want the live auto-refreshing dashboard, embedding-based semantic search, a real-time watch daemon, or an MCP server mode? Run eb pro. It installs only eternal-buckets-pro, verifies it loads, and opens the live dashboard. No configuration is needed:
eb pro -d ./targetThe manual equivalent is npm install -g eternal-buckets-pro, followed by eb view -d ./target.
Installation
npm install -g eternal-buckets
eb unlock
# or: eb unlock <passcode>The core package has no postinstall hook and does not install Claude Code, Jules, Gemini CLI, or another agent CLI. AI providers are called directly over HTTPS with Node's built-in fetch.
Until unlocked, only unlock, lock, help, and version work. After a successful unlock, a local license is stored at ~/.eternal-buckets/license.json.
Wrapped session
Running eb with no arguments (once unlocked) opens a wrapped interactive session — the banner shows once, then you get an eb ❯ prompt. Type help for the command list, lock to lock and leave, or exit / quit to close.
CLI Commands
| Command | Description |
|---|---|
| eb unlock [password] | Unlock full plugin (interactive if omitted) |
| eb lock | Clear local unlock license |
| eb view [-d <dir>] [-p] | Generate the dashboard — live server with eternal-buckets-pro, static file otherwise |
| eb pro [-d <dir>] [-p] | Install or verify eternal-buckets-pro, then open the live dashboard with Pro-only motion effects |
| eb index [-d <dir>] | Run bundled Python indexer → shallow and full-depth manifests, skills |
| eb tag [-N] [-d <dir>] | Tag every indexed depth by default; -N optionally caps depth; API tagging is optional enrichment |
| eb Front [generate\|view\|remove-all\|index] | Frontmatter suite |
| eb query <terms> | Keyword search over scanned records (semantic with pro) |
| eb stats | Workspace health readout |
| eb prune | Validate manifest vs disk |
| eb context | Bundle tagged files for AI context |
| eb pack / eb sync | Export / sync metadata (sync needs eb config syncEndpoint <url> first — there is no default cloud backend) |
| eb obsidian [-d <vault>] [--ai\|--local] [-n] | Tag an indexed Obsidian vault semantically or with an optional API |
| eb config | Interactive menu: auth, provider, model, syncEndpoint, lock |
| eb watch, eb mcp | Require eternal-buckets-pro — print an install hint if it's missing |
AI providers
Configure with eb config (or eb auth / eb provider / eb model). Keys are stored per-provider in ~/.eternal-buckets/config.json; each provider also honors its environment variable as a fallback, and eb auth will auto-discover keys already set in your environment or a .env file. A recognized key uses the maintained low-end frontier model unless eb model has saved an override.
| Provider id | Service | Frontier default | Env var |
|---|---|---|---|
| openai | OpenAI | gpt-5.6-luna | OPENAI_API_KEY |
| deepseek | DeepSeek | deepseek-v4-flash | DEEPSEEK_API_KEY |
| xai | xAI (Grok) | grok-4.3 | XAI_API_KEY |
| gemini | Google Gemini | gemini-3.5-flash-lite | GEMINI_API_KEY |
| venice | Venice | deepseek-v4-flash | VENICE_API_KEY |
| kimi | Kimi (Moonshot) | kimi-k2.6 | MOONSHOT_API_KEY |
| openai-compat | Any OpenAI-compatible endpoint (custom base URL) | user supplied | OPENAI_COMPAT_API_KEY |
| anthropic | Anthropic (Claude, optional final fallback) | claude-haiku-4-5 | ANTHROPIC_API_KEY |
Run eb index -d <target> before eb tag or eb obsidian. A complete index contains both .eb/manifest.json and .eb/manifest-all.json. If the target has no complete index, an interactive terminal offers to create one first and a non-interactive run stops with instructions. Tagging uses the full-depth manifest as its traversal source and considers every indexed file regardless of extension or nesting depth.
Unflagged tagging uses contextual API enrichment when a supported key already exists. Without a key, it asks whether to add one; declining runs the local semantic tagger. Local tags are guaranteed for every indexed entry, including empty or low-signal files, and a failed API automatically falls back locally for the rest of the run. Use --local to force semantic tagging or --ai to request API enrichment. Provider discovery follows the table order and leaves Anthropic last. The listed frontier model is automatic, while eb model remains authoritative as an override.
License / Access
Source is private (luxdevnet/eternal-buckets). The npm package is installable but feature-locked until unlocked with the distributor passcode. Soft client-side gate — do not treat as cryptographic DRM.
