Sharur
Primitives, not features. Local-first. Extensible.
sharur is a powerful, local-first agentic harness designed for developers who want a flexible and reliable assistant that runs on their own hardware. It prioritizes local LLMs (via Ollama and llama.cpp) but adapts seamlessly to cloud providers like OpenAI, Anthropic, and Google Gemini.
Sharur, smasher of thousands! The weapon of Ninurta, acting as his counselor and scout - flies ahead, assesses, reports back, then executes.
Core Philosophy
- Local-First — Built from the ground up to favor local inference for privacy, speed, and cost-efficiency.
- Aggressively Extensible — Every tool, provider, and behavior is a plugin interface. Supports gRPC extensions, markdown skills, and reusable prompt templates.
- Session Persistence — Intelligent JSONL-backed session management with project-aware storage, branching, forking, and tree visualization.
- Flexible Modes — TUI mode, one-shot mode, or a multi-session gRPC service — all powered by a central service-oriented architecture.
- Security & Safety — Dry-run safety for destructive tools, automatic prompt injection mitigation, and a gRPC extension system for enforcing arbitrary policies.
Getting Started
Prerequisites
- Go 1.26.2+
- Nix (optional, recommended) — with flake support enabled
Installation
Quick Start
What’s in This Site
| Section | Audience | Contents |
|---|---|---|
| CLI | All users | Modes, keybindings, slash commands, provider setup, configuration |
| Extensibility | Extension authors | Skills, prompt templates, Go/Python/gRPC extensions |
| SDK | Go library consumers | Embedding, custom tools, events, in-process extensions |
| Internals | Contributors | Architecture, agent loop, session format, build system |
| API Reference | SDK & extension authors | GoDoc for sdk, extensions, internal/tools, internal/agent |