lithe-cli
lithe-cli is the command-line interface for
lithe — the storage-free ReAct agent
kernel. Installing it pulls in lithe automatically and gives you a lithe
command: chat with an agent that reads and writes files in your workspace,
run one-shot tasks, inspect stored runs, and undo a run's mutations.
pip install lithe-cli
Configure
There is no default endpoint — the CLI refuses to run rather than silently hitting some third-party URL. Point it at any OpenAI-compatible endpoint:
export LITHE_API_KEY=sk-...
export LITHE_BASE_URL=https://your-endpoint/api/v1
export LITHE_MODEL=your-model
Flags (--api-key, --base-url, --model) override the environment.
LITHE_HOME (default ~/.lithe) locates the run store; the agent's
workspace defaults to the current directory (--workspace to change).
Use
One-shot task
$ cd my-project
$ lithe run "总结 README.md 的要点,存到 SUMMARY.md"
⚒ read_file {"path": "README.md"}
✓ 已读取 README.md(120 行)
⚒ write_file {"path": "SUMMARY.md", "content": "..."}
✓ 写入 SUMMARY.md
已把要点写入 SUMMARY.md。
--stream streams tokens as they generate; -v adds per-call
usage/context gauges; --max-steps caps the tool loop;
--context-window enables fullness gauges.
Interactive chat
$ lithe chat
lithe 0.1.0 — /exit 退出,输入任务开始。
lithe> 把 a.txt 改成三行待办清单
⚒ write_file {"path": "a.txt", ...}
✓ 写入 a.txt
已完成。
lithe> /exit
History carries across turns within a session (each turn is its own run in the store, replayed as context for the next).
Undo a run
The bundled file and todo tools register reverters, so undo works with zero configuration:
$ lithe runs # find the run
abc123def456 done steps=3 ...
$ lithe undo abc123def456
已撤销 2 个操作(run abc123def456)
A file the run created is deleted; a file it overwrote is restored.
Inspect
$ lithe runs # stored runs (newest last)
$ lithe log abc123def456 # messages + actions of one run
Tools
$ lithe tools # what the agent can do
apply_patch WRITE 以行级 patch 一次修改多个文件...
edit_file WRITE 局部替换文件中的文本...
read_file READ 读取文件内容...
...
The default tool set is the workspace bundle (read_file / write_file /
edit_file / list_files / search_files / glob_files /
apply_patch) plus todos (update_todos / list_todos).
--download additionally grants download_file — the SSRF-guarded,
size-capped network fetch — for runs and chats.
Where things land
| Path | Contents |
|---|---|
current dir (or --workspace) |
the agent's sandboxed workspace — every tool path resolves strictly inside it |
~/.lithe/runs (or --store) |
JSONL run store: messages, actions, undo records |
~/.lithe/runs/todos-<user>.json |
the agent's task list |
Design notes
- The CLI is a thin host: it supplies tools, a system prompt, and the
kernel's
JsonlRunStore; everything else (ReAct loop, streaming, budgets, replay, undo engine) is reused from lithe. - End-to-end behavior is tested offline against a scripted transport — no test spends tokens.
python -m lithe_cliworks alongside thelitheconsole script.
License
MIT
Release files for lithe-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lithe_cli-0.1.0.tar.gz | 13.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lithe_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.0 kB
Release files / lithe_cli-0.1.0.tar.gz
| Download URL | lithe_cli-0.1.0.tar.gz |
|---|---|
| Size | 13.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
342f9d0ee2bbab2be47ba54dd06654fb29cf496e8a7b8eeebb01a35f2dd74691
|
|
BLAKE2b-256 checksum How to use checksums |
12a616778d122fd8771123de7a617d84c09faa5000e2ccc7fd229bc1c2bf58ca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / lithe_cli-0.1.0-py3-none-any.whl
| Download URL | lithe_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 12.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
750c1b735a141a66ba27c1413e1808476bb81bac4fa6fec9f5f86e87eb5ddbd6
|
|
BLAKE2b-256 checksum How to use checksums |
e0077902ce097d6351ec3dda66e0a47daf4c97e120f0b0d1214a7f446da4dd10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|