Show HN: Grinta – local-first AI coding agent that passed 106-minute stress test
Grinta is a local-first, provider-agnostic AI coding agent that passed a 106-minute stress test. It offers deep built-in tooling including LSP and DAP integration, safety rails, session checkpointing, and works with multiple model providers. Current release is v1.0.0-rc1.
Notifications You must be signed in to change notification settings
Fork 2
Star 18
BranchesTags
Open more actions menu
Folders and files
NameName
Last commit message
Last commit date
Latest commit
History
1,610 Commits
1,610 Commits
.cursor
.cursor
.devcontainer
.devcontainer
.github
.github
.trunk
.trunk
.vscode
.vscode
backend
backend
docs
docs
examples
examples
launch
launch
logs
logs
packaging
packaging
scripts
scripts
traces/ouroboros
traces/ouroboros
.dockerignore
.dockerignore
.env.template
.env.template
.gitattributes
.gitattributes
.gitignore
.gitignore
.hintrc
.hintrc
.nvmrc
.nvmrc
.pre-commit-config.yaml
.pre-commit-config.yaml
.prettierignore
.prettierignore
.prettierrc.json
.prettierrc.json
.pylintrc
.pylintrc
BOOK_OF_GRINTA.md
BOOK_OF_GRINTA.md
CHANGELOG.md
CHANGELOG.md
CITATION.cff
CITATION.cff
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
COMMUNITY.md
COMMUNITY.md
CONTRIBUTING.md
CONTRIBUTING.md
DOCKER_START.ps1
DOCKER_START.ps1
GOVERNANCE.md
GOVERNANCE.md
LICENSE
LICENSE
MAINTAINERS.md
MAINTAINERS.md
MANIFEST.in
MANIFEST.in
Makefile
Makefile
README.md
README.md
ROADMAP.md
ROADMAP.md
SECURITY.md
SECURITY.md
START_HERE.ps1
START_HERE.ps1
SUPPORT.md
SUPPORT.md
THIRD_PARTY_NOTICES.md
THIRD_PARTY_NOTICES.md
build.sh
build.sh
docker_start.sh
docker_start.sh
grinta_raft.mp4
grinta_raft.mp4
mypy.ini
mypy.ini
pydoc-markdown.yml
pydoc-markdown.yml
pyproject.toml
pyproject.toml
pytest.ini
pytest.ini
settings.bench.json
settings.bench.json
settings.template.json
settings.template.json
start_here.sh
start_here.sh
uv.lock
uv.lock
Repository files navigation
Local-first. Provider-agnostic. Ships with real LSP + DAP. Optional extras stay opt-in.
A terminal coding agent that plans, executes, validates, and finishes — without a cloud control plane, without lock-in to one model vendor, and without the old heavyweight install footprint.
Current status: v1.0.0-rc1 public release candidate. Linux, Windows, and macOS run required unit and extended CI gates; smoke-install and onboarding validation are in place. Remaining GA work is mostly documentation alignment, contributor-doc honesty, and edge-case hardening after the post-rc1 decomposition wave.
Grinta in action
Direct link if the video does not load: docs/assets/grinta-demo.mp4.
Release status
Latest public build is v1.0.0-rc1 (release candidate), not final GA.
Required CI covers sharded Linux unit coverage (75%), cross-platform unit gates, and integration/e2e/stress on Linux, Windows, and macOS; smoke-install and onboarding validation are in place for the current release line.
We are actively collecting feedback on UX clarity and edge-case reliability before the GA call.
Linux, Windows, and macOS are supported release targets, but certification depth differs by platform; see docs/SUPPORT_MATRIX.md.
If you hit friction, please open an issue with the RC Feedback template from the issue chooser.
GA criteria and release gate details live in docs/RELEASE_CHECKLIST.md.
Why Grinta vs the rest
Grinta Aider Claude Code Codex CLI
Provider-agnostic (OpenAI / Anthropic / Google / Ollama / LM Studio / OpenRouter) ✅ ✅ ❌ Anthropic only ❌ OpenAI only
Local-first (works fully offline w/ Ollama) ✅ auto-detected partial ❌ ❌
LSP integration (auto-discovers 40+ language servers on PATH) ✅ ❌ partial ❌
DAP debugger integration ✅ auto-discovered ❌ ❌ ❌
Cost / token / latency HUD ✅ live partial ❌ partial
Stuck-loop + cost-acceleration detection ✅ ❌ partial ❌
Risk-classified actions + audit log ✅ ❌ partial partial
Session checkpoint / resume / revert ✅ event-stream ✅ git partial ❌
Windows-supported workflow (PowerShell) ✅ partial partial partial
MCP support ✅ ❌ ✅ strong partial
The pitch in one sentence: a local-first coding agent with deeper built-in tooling than most terminal peers, without locking you to a single model vendor.
Install
Consumer, dev, Windows, WSL2, Linux, macOS: docs/QUICK_START.md
pipx install grinta-ai # consumer — then cd "" && grinta
Optional extras: pipx install "grinta-ai[rag]" · "grinta-ai[browser]" · "grinta-ai[all]" — details in Quick Start.
What you get
Task completion, not just file edits. Stuck detection, recovery directives, and optional completion-quality validation help reduce premature "done".
Model-agnostic. OpenAI, Anthropic, Google, OpenRouter, Ollama, LM Studio — same prompt surface, same tools.
Local-first. Code stays in your workspace; sessions, checkpoints, and audit logs live under ~/.grinta/workspaces//storage.
Strong safety rails. Risk-classified actions, CRITICAL refusal gate, secret masking, and a session-wide audit trail.
Durable long sessions. Event-stream ledger, automatic compaction, manual /checkpoint, and revert.
Terminal UI. Interactive TTY sessions launch the Textual app with HUD, transcript cards, settings/sessions dialogs, and slash commands; piped input uses a non-interactive fallback.
Interaction modes
Grinta exposes three modes in the Textual HUD (Chat, Plan, Agent). They change the conversational contract, not just the prompt tone:
Chat — read-only Q&A and discovery tools; no edits or shell.
Plan — read-only investigation; may use task_tracker for a structured plan when enabled, or prose only. Switch to Agent mode to execute.
Agent — full task loop (default for direct work).
Autonomy (/autonomy: conservative, balanced, full) controls confirmation prompts in Agent mode only. Runtime hardening is configured separately with security.execution_profile (standard is the default and supports the interactive terminal and debugger; hardened_local and sandboxed_local add stricter policy gates).
Common slash commands
Command What it does
/help Full slash-command reference
/settings Model, API key, and MCP configuration
/sessions List past sessions; /resume to continue one
/model Show or switch the active provider/model
/mode View or set interaction mode (chat / plan / agent)
/autonomy View or set confirmation behavior
/cost Tokens, calls, USD spent this session
/diff Workspace git changes (--stat, --name-only, --patch)
/health Fast self-check for debug adapters, ripgrep, git, and model setup
/checkpoint Snapshot the workspace (revertable)
/status HUD snapshot; /status verbose adds diagnostics
/compact Force context compaction now
Playbook workflows (/debug, /testing, /feature, …) and the full registry are in /help.
Security boundary
Grinta executes actions on the local host. The default standard profile preserves full interactive terminal and debugger support. hardened_local adds stricter policy checks but is not sandboxing or process isolation; sandboxed_local adds process isolation only for non-interactive commands. Read docs/SECURITY_CHECKLIST.md before pointing Grinta at code you do not trust — for hostile codebases, run inside a VM or container.
Architecture (high level)
graph TB User([User]) --> CLI[CLI: backend.cli.entry] CLI --> TUI[TTY: Textual TUI] CLI --> NonInteractive[Piped input: non-interactive runner] TUI --> Orch[SessionOrchestrator] NonInteractive --> Orch Orch --> Engine[Engine\nplanning + tool intent] Orch --> Pipe[Operation pipeline\nsafety + validation] Pipe --> Runtime[RuntimeExecutor\nlocal execution] Runtime --> Obs[Observations] Obs --> Orch Orch --> Ledger[EventStream / durability] Orch --> FinishGate[Task validation\nbefore finish]
Loading
See docs/ARCHITECTURE.md for the deep dive.
Contributors: Linux PR gates shard the unit corpus (backend/tests/unit) with 75% coverage, then run integration/e2e/stress in extended jobs; Windows and macOS run the same unit corpus plus the extended tier (docs/CI.md). Match the tier you are changing before opening a PR (CONTRIBUTING.md).
The story behind Grinta
Grinta is a single-author project, written and rewritten in public. The journey — what was killed, what was wrong, what got rebuilt — is The Book of Grinta: start at Preface → 00 · Meaning of Grinta through the numbered chapters to 45 · The Product Surface Became Real and 46 · The Decomposition Wave, then the epilogue 07 · The Road Ahead. Full index and act structure: docs/journey/README.md. Stable shortcut from the repo root: BOOK_OF_GRINTA.md.
Docker (community / experimental)
Use the container image directly (no official compose stack in this repo):
docker run -it --rm -v "$PWD:/work" -w /work \ -e LLM_API_KEY=${LLM_API_KEY} \ ghcr.io/josephsenior/grinta:latest
LLM setup
Run grinta (first interactive launch runs setup) or see docs/SETTINGS.md.
Core Concepts
Full task loop
Plan -> execute -> observe -> validate -> finish.
Context compaction
Grinta uses compactor strategies to keep long sessions coherent under context limits.
Reliability controls
Stuck detection, retry/recovery flows, and circuit breakers are built into orchestration.
Completion integrity
Optional completion-quality validation surfaces advisory warnings when tracked work looks incomplete; it does not hard-block the agent from finishing.
Documentation
Start here (end users):
Quick Start · User Guide · Settings · Troubleshooting
Contributors:
Contributor Map · Developer Guide · Architecture · CI · Contributing
More reference:
Documentation hub · Support Matrix · Release checklist · Vocabulary · Security checklist · Roadmap
Optional narrative: The Book of Grinta — engineering memoir; may not reflect the current product surface.
Contributing
See CONTRIBUTING.md.
License
MIT — see LICENSE.
Third-party Notices
Dependency attribution and notice policy: THIRD_PARTY_NOTICES.md.
About
Local-first autonomous coding agent that plans, executes, validates, and finishes software tasks end-to-end.
Topics
python
orchestration
developer-tools
fastapi
local-first
autonomous-agent
llm
ai-coding
model-context-protocol
coding-agent
Resources
Readme
License
MIT license
Code of conduct
Code of conduct
Contributing
Contributing
Security policy
Security policy
Uh oh!
There was an error while loading. Please reload this page.
Activity
Stars
18 stars
Watchers
0 watching
Forks
2 forks
Report repository
Releases
No releases published
Packages 0
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Contributors
Uh oh!
There was an error while loading. Please reload this page.
Languages
Python 99.5%
Other 0.5%