Lightweight AI assistant framework in Rust. Pluggable LLM providers, built-in tool calling, web search, agent skills â and a reusable library crate. Runs on under 20 MB of RAM with zero idle CPU.
Ollama, llama.cpp, vLLM, and any OpenAI-compatible API. Swap backends without changing application code.
Modular tools â ls, read, write, edit, grep, glob, run, web_search â that let the AI interact with your filesystem and the web.
Four modes â casual, planning, agent, and research â to control what the AI can do at any given moment.
Pluggable skill modules that inject specialized instructions for specific tasks like PDF processing or image analysis.
JSONL-based sessions with UUIDs, saved locally. Pick up conversations right where you left off.
Built-in web_search and web_fetch tools powered by the Ollama web search API. The AI can look up documentation, fetch web pages, and stay current without leaving the terminal.
Minimal resource usage â typically under 20 MB of RAM. Zero CPU utilization when idle. Writes directly to STDOUT instead of a full TUI framework, keeping memory and dependencies to a minimum. Check it yourself:
smem -t -k | grep tinyharness | awk '{ total = total + $NF } END { print total }'
cargo install tinyharness
Available on crates.io. Installs the binary to ~/.cargo/bin.
git clone https://github.com/PTFOPlayer/TinyHarness.git
cd TinyHarness
make install
Builds in release mode and copies the binary to ~/.local/bin.
tinyharness
Connects to http://127.0.0.1:11434
tinyharness --llama-cpp
Connects to http://127.0.0.1:8080
tinyharness --vllm
Connects to http://127.0.0.1:8000
tinyharness --llama-cpp --url http://localhost:2832
tinyharness --ollama --url http://192.168.1.50:11434
tinyharness --vllm --url http://gpu-server:8000
The core of TinyHarness is exposed as tinyharness-lib â a crate you can pull into any Rust project to get AI tooling without the terminal frontend.
[dependencies]
tinyharness-lib = "0.1"
Or run cargo add tinyharness-lib.
ls, read, write, edit, grep, glob, run, web_search with confirmation hooks| Mode | Tools Available | Purpose |
|---|---|---|
| casual | None | Pure chat, no filesystem access |
| planning | ls, read, grep, glob, web_search, switch_mode, question |
Analyze & plan, then escalate to agent |
| agent | All tools | Full development access â code, commands, web |
| research | web_search, web_fetch, ls, read, grep, glob, switch_mode, question |
Web research, then escalate for execution |
/help
Show available commands
/mode
Switch agent mode
/compact
Summarize older messages
/session
Manage conversation sessions
/settings
Show configuration
/command
Manage auto-accepted commands
/model
List or switch models
/apikey
Set/show/clear API key
/add /drop
Pin/unpin files into context
/context
Show project context
/init
Generate TINYHARNESS.md
/clear /exit
Clear screen / quit
Cargo workspace with two crates â a frontend-agnostic library and a terminal-UI binary.
tinyharness-lib/src/TinyHarness grants LLMs the ability to interact with your filesystem through tool calling. Run within a sandboxed environment (Docker container, VM) to prevent unintended modifications.
The run tool can never be auto-accepted â unlike write and edit. Always review proposed actions. You assume full responsibility for all operations performed by the AI.