Skip to content

emanuelet/eidetic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eidetic

A local CLI that centralizes LLM traffic from multiple tools through a Bifrost gateway into Postgres.

opencode ─┐
hermes    ─┼──(per-tool virtual key)──▶ Bifrost gateway ──▶ OpenRouter
openwebui ─┘                                  │
                                               ▼
                                   Postgres (logs_store)
                                               │
                                               ▼
                              SQL views: conversations, code_vs_chat

Quick start

uv sync

1. Bootstrap

eidetic bootstrap --pg-password <password>

Detects Bifrost, creates the bifrost database on Postgres, configures Bifrost's logs_store to use it, and registers the OpenRouter provider.

2. Provision virtual keys

eidetic provision opencode
eidetic provision hermes
eidetic provision openwebui

Creates one Bifrost virtual key per tool. Keys are stored in ~/.config/eidetic/keys.json (0600 permissions).

3. Swap tool configs

eidetic swap opencode     # writes ~/.config/opencode/opencode.json
eidetic swap hermes       # writes ~/.hermes/config.yaml
eidetic swap openwebui    # prints instructions (Coolify-managed)

Add --dry-run / -n to preview changes.

4. Deploy SQL views

eidetic deploy-views --pg-password <password>

Creates conversations and code_vs_chat views on the bifrost Postgres database.

Status

eidetic status

Environment

All bootstrap options can be set via EIDETIC_* environment variables (see .env.example):

Variable Default
EIDETIC_BIFROST_URL http://localhost:8090
EIDETIC_PG_HOST localhost
EIDETIC_PG_PORT 5432
EIDETIC_PG_USER postgres
EIDETIC_PG_DB bifrost
EIDETIC_PG_SSL_MODE disable

Architecture

No custom ingestion adapters. Bifrost is the single capture point; Postgres is the single store. Tool attribution comes from the virtual key used to authenticate — every log row includes virtual_key_name.

SQL views

  • conversations — clusters log rows per tool by time gaps (>30 min idle = new conversation), picks the row with the deepest input_history as the canonical record.
  • code_vs_chat — classifies conversations as code/chat/mixed using heuristics (code-fence density, file paths, stack traces, review keywords) with confidence levels.

About

centralizes LLM traffic from multiple tools to backup and manage all the conversations

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Contributors

Languages