Skip to content

Repository files navigation

ChaosKB

A personal knowledge base for saving and searching web articles. All intelligence — content fetching, text extraction, chunking, embedding, searching, encryption — runs on your device. The server is an optional encrypted blob store for backup and multi-device sync.

How it works

  1. Save a URL (via chat agent, share sheet, or CLI)
  2. The client fetches, chunks, and embeds the article on-device
  3. Everything is encrypted before leaving the device
  4. Search your knowledge base with natural language — locally, instantly

Install

npm install -g @de-otio/chaoskb-client

That's it. On first launch, ChaosKB detects your SSH key, enables sync automatically, and encrypts your data with your public key. No setup commands, no accounts, no configuration.

Clients

  • Desktop@de-otio/chaoskb-client, an npm package that runs as an MCP server for any compatible chat agent (Claude Desktop, Claude Code, Cursor, VS Code, etc.)
  • Mobile (future) — Flutter app for iOS and Android

Key properties

Property Value
Privacy Server never sees plaintext — opaque ciphertext only
Offline Fully functional without a server
Search On-device embedding + brute-force cosine similarity (<50ms)
Encryption XChaCha20-Poly1305, HKDF-SHA256, Argon2id
Server cost ~$0.25/mo (DynamoDB + Lambda), or $0 in local-only mode

Security tiers

Tier Key management Recovery
Standard (default) Your SSH key Same SSH key on new device restores everything
Enhanced (deprecated) 24-word recovery key + SSH key Recovery key OR SSH private key
Maximum Passphrase you choose Re-enter passphrase on new device

All tiers are end-to-end encrypted — the server stores only ciphertext it cannot decrypt. Lose your key material (SSH key, recovery words, or passphrase depending on tier), and your data is gone. No backdoor, no server-side key escrow. Enhanced is deprecated for new installations; use Maximum for stronger protection.

Self-hosting

Deploy your own backend with a single command:

npx chaoskb-deploy --ssh-pubkey ~/.ssh/id_ed25519.pub
# or, fetch the public key from GitHub:
npx chaoskb-deploy --github <username>

This creates a Lambda Function URL + DynamoDB table in your AWS account. See self-hosting docs.

Documentation

User guide (doc/user/)

Admin guide (doc/admin/)

  • Deploy — deploy a self-hosted backend
  • Configure — CDK customizations, client config
  • Operations — monitoring, cost, API key rotation, backups
  • Tear down — remove the backend safely

Design (doc/design/)

Security

See SECURITY.md for the vulnerability disclosure policy and cryptographic dependencies.

License

MIT

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages