Four tools.
That’s the whole kit.
Read · grep · write · bash. A small, inspectable boundary between the model and your files.
Responses appear whole after activity ends. No token-by-token stream.
A minimal, personal agent harness. Small enough to read, yours to own.
uv tool install tribeaiEvery step is a small, inspectable piece. Nothing hides behind an abstraction.
Small parts. Clear edges. The terminal stays where the work is.
Read · grep · write · bash. A small, inspectable boundary between the model and your files.
Responses appear whole after activity ends. No token-by-token stream.
Read and grep are automatic. Write and bash ask first. The policy stays visible.
Approval decisions are recorded alongside the tool call.
Choose Anthropic, OpenAI, OpenRouter, Groq, DeepSeek, Together, Fireworks, or xAI.
Switch with /model, or use the provider:model shorthand.
Read, grep, and write paths resolve inside the configured workspace. Traversal and symlink escapes are rejected.
The shell runs with the workspace as its working directory.
Sessions are append-only JSONL: messages, tool calls, results, and summaries.
Pick up a run again with tribe resume <id>.
At 60% of the model’s context limit, older history is compacted.
Recent messages remain verbatim. The summary carries what matters forward.
Run tribe run "inspect the project and run its tests" from the command line.
Maximum rounds, per-tool timeouts, and consecutive failure caps.
src/About three thousand lines. Every part has a name. Every part has a place.
READ THE SOURCE ↗Keep the runtime small enough to understand end to end.
↗Make the agent loop explicit rather than hiding it behind abstractions.
↗Treat tools as a narrow, inspectable capability boundary.
↗Preserve useful session state while keeping model context bounded.
↗Prefer local-first workflows and plain text artifacts.
↗One install. Then the loop is yours.
uv tool install tribeaitribe chatNOTE You’ll need a provider API key. Or run /login inside Tribe.