Leviathan CLI
A single binary indexes tables and logs so an agent gets a few matching records back instead of raw history
- 881 ★ on the repository
- Last commit
Extended access
Why this level
- The index makes a full copy of the data in a local file, and the HTTP mode exposes the tools over the network.
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/leviathanDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The index makes a full copy of the data in a local file, and the HTTP mode exposes the tools over the network.
This is third-party code. Review the repository files before installing.
What it does
Leviathan reads JSONL, JSON, CSV, TSV, SQLite databases and the output of any database's command-line client, and builds one SQLite file with a full-text index. An agent asks in plain words and the CLI returns short result cards with citations. In the author's measurements on a million synthetic records the median is 436 tokens per answer, while the best grep strategy spends 107,122. Fields are mapped through a config: only `id` is required, the rest is optional. For a group of records such as a customer, the `-g` search resolves the name, and when the group is ambiguous the command exits with code 3 instead of guessing. There are `--where` filters, date ranges, quoted phrases and exclusions, exact counts and sums through `aggregate`, and the index build is atomic and skipped when the data has not changed. Leviathan reaches an agent in three ways. The `skills/leviathan` skill goes into `~/.claude/skills/` or is pasted into `AGENTS.md`. The `leviathan mcp` command starts a read-only MCP server with five tools, and `leviathan wrap <agent>` prints or writes the config for 24 agents. A separate memory mode stores claims by key and returns on request only what fits a token budget.
Who it is for. People who give an agent large exports such as support tickets, orders, maintenance logs or chat history and do not want it to read them whole.
Good fit when
- An agent searches a CSV ticket export and grep eats the context within one session
- A SQLite or Postgres database holds a customer's history and people ask about it in words, without SQL queries
- An agent needs exact counts and sums by month, with no eyeballed estimate from the first result pages
- The MEMORY.md file has grown and stale entries land in the context at session start
- One index has to serve Claude Code, Cursor and Codex at the same time without copying data between them
Not a fit when
- There is little data and it fits in the context: an index adds a step with no gain
- You need semantic search by meaning: Leviathan ranks by BM25 and word matches
- You need live writes to a working database: the index only reads a copy of the data and writes only to its own file
- The data cannot be copied even locally: the index creates a separate file with all the content
Example request
Use leviathan to find Acme tickets about a login loop after a password reset and show the fix from the closed one.Limitations
The 436-token and 245-fold figures come from a single synthetic maintenance log, so on your data the result will differ. The author put the methodology in docs/BENCHMARKS.md.
The index is one SQLite file and holds a copy of the data. If the export contains personal details, treat the file as carefully as the source. A build from a database goes through its command-line client, and Leviathan stores no credentials.
The `leviathan serve --http` mode exposes the tools over the network. Turn it on only with a token or OAuth, as docs/REMOTE.md describes. Installing through `cargo install` needs Rust 1.88 or newer, and prebuilt binaries are in the releases.
How to disable. Delete the skill from `~/.claude/skills/`, the MCP block from the agent config and the index file. Remove the binary with `cargo uninstall leviathan-index`.
FAQ
Which data formats does Leviathan accept?
JSONL, JSON, CSV, TSV and SQLite. Any other database connects through its command-line client by piping JSON lines into `leviathan index -`.
Do I need MCP to use it?
No. An agent with shell access calls the CLI directly, and the skill costs tokens only when used. MCP is optional through `leviathan mcp`.
How do I connect Leviathan to Claude Code?
Copy `skills/leviathan` into `~/.claude/skills/` or run `leviathan wrap claude --apply` to write the MCP config.
What does the memory mode do?
An agent records claims with the `remember` command and a key, and a new entry replaces the old one under the same key. A short briefing is issued at session start, and `recall` returns only what fits the budget.
What happens if the group is ambiguous?
The command lists candidates and exits with code 3. Leviathan does not guess the customer.
Discussion
No questions or reviews yet.
Related
CLI toolsA Cypher graph database in one binary for agents: CLI, embedded engine, MCP server and a skill for Claude Code, Cursor and Codex.
A Rust terminal database client with MCP and a JSON CLI: agents read schemas and run queries within profile permissions.
A graph database with git-style branches: the server exposes it to agents over MCP at /mcp, and a skill teaches the agent schemas and queries
A database CLI for dozens of engines with an agent mode: JSON output, a read-only guard, limits and a broker that hides passwords
A CLI agent for quantitative investment research: it reads broker reports, ideates factors and computes IC on offline data.
A local MCP server that turns a folder of documents into a knowledge base with hybrid search for Claude Code and Cursor
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Leviathan (this card) | no | 881 | ||
| Mem0 | no | 68,887 | Mem0 stores agent memory as a service, while Leviathan primarily indexes your tables and exports. | |
| QMD | no | not required | 31,078 | QMD searches notes and documents, while Leviathan works with tables, logs and records with groups and filters. |
README in short
The README describes a single Rust binary under Apache-2.0 with no runtime dependencies. It gives benchmark results at six dataset sizes, a quickstart on a tickets example, a command table and exit codes. Separate sections cover connecting to agents, the remote server and memory.