Skip to main content

Sage — a local-first AI coding CLI (like Claude Code, using free/open models)

Project description

Sage AI CLI

A free, local-first AI coding agent for your terminal. Like Claude Code, but using free and open models — no API key required.

PyPI Python

pip install sage-ai-cli
sage install   # auto-pulls models, sets best coder, builds RAG, prewarms
sage run       # start coding with the full Tier 1-3 safety harness

What Sage Does

Sage is an autonomous coding agent that runs in your terminal. It:

  • Plans your task and breaks it into concrete steps
  • Reads your codebase (with project-aware RAG) to ground itself in real symbols
  • Writes code using TDD — tests first, then implementation
  • Runs tests automatically and fixes failures
  • Iterates until the task is complete
  • Routes to the best-fit model per request (small for trivial, strong for hard)
  • Searches the web for docs when its training data is too old
  • Fine-tunes local LoRA adapters on your codebase
  • Refuses to run with a model too small to follow the protocol (T1)
  • Stages all writes through a tmpdir so broken output never reaches your repo (T5)
  • Blocks npm install after rejecting a poison package.json (T6)

All using free AI models — no API keys, no subscriptions, no cloud dependency.

Quick Start

# Install everything (Ollama, models, RAG, optional deps) — disk-aware
pip install sage-ai-cli
sage install

# Coding agent with full safety harness
sage run

# Try the new features:
sage rag index                          # build per-project semantic index
sage ext search "react hooks"           # web search (no API key)
sage ext route "design a new system"    # see which model the router picks
sage ext detect                         # see auto-detected project context
sage ext bootstrap --finetune           # kick off project-aware fine-tune

Documentation:

What's New

Waves 1–5 + Tiers A–C (Capability)

Capability Command
Auto-pick strongest installed coder sage ext auto-pick
Project context detection sage ext detect
Local RAG over your codebase sage rag index / sage rag query "..."
Web search (DuckDuckGo, no key) sage ext search "..."
Hybrid difficulty-based routing sage ext route "..."
LoRA fine-tune with adapter cache sage ext finetune <model>
GCS-mirrored public datasets sage ext datasets mirror --name all
One-shot disk-aware bootstrap sage ext bootstrap [--finetune] [--full-datasets]

Tiers 1–3 Hardening (Safety + Quality)

These prevent the "silent quality collapse" failure mode where a small fallback model produces broken output. Wired into every sage run session.

Tier Feature Impact
T1 Hard model-capability floor Refuses agentic tasks below 7B params
T2 Diff-preview before batch FILE: writes User confirms before disk hit
T3 Bounded regenerate context Stops feedback bombs in retry loops
T4+T12 GBNF on tool turns + project-aware imports Hallucinated imports impossible
T5 Tmpdir staging All writes pass through isolated workspace
T6 Run guard npm install blocked after rejected package.json
T7+T9 Project-skeleton bootstrapper React+Vite, Node+Express, FastAPI, fullstack
T8 RAG before first turn Project context ready on turn 1
T10 Telemetry with secret redaction Per-session JSONL log
T11 Two-model planner/coder default Cheap planner + strong coder, automatic
T13 Readiness self-test 30s "write hello.js" probe at session start
T14 Disk-aware install + safe pip Picks model tier that fits free disk

Architecture

core/run_hooks.py is the single orchestrator. sage run calls:

  1. on_session_start — capability check (T1), readiness probe (T13), skeleton match (T7+T9), RAG indexing (T8)
  2. on_pre_turn — grammar selection (T4+T12), planner/coder pair (T11), top-K RAG retrieval (T8)
  3. on_post_turn — telemetry log (T10) with secret redaction

Every FileWriteTool.write() is wrapped by content_validator and arms the run_guard on rejection. Every RUN: shell call is gated by run_guard.allow().

See docs/SAGE_ARCHITECTURE.md for the full data-flow diagram.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sage_ai_cli-1.19.74.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sage_ai_cli-1.19.74-py3-none-any.whl (1.2 MB view details)

Uploaded Python 3

File details

Details for the file sage_ai_cli-1.19.74.tar.gz.

File metadata

  • Download URL: sage_ai_cli-1.19.74.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for sage_ai_cli-1.19.74.tar.gz
Algorithm Hash digest
SHA256 27e2433a7ef7887706d8a77e4b036293782a45ea2a9817f1de0b297da79c1cc3
MD5 153d656890272a498e155a752ddabb4d
BLAKE2b-256 d6e1aea89b144e697336f5a67f7a59c7f7c1587b53d3b24783313361d42b8585

See more details on using hashes here.

File details

Details for the file sage_ai_cli-1.19.74-py3-none-any.whl.

File metadata

  • Download URL: sage_ai_cli-1.19.74-py3-none-any.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for sage_ai_cli-1.19.74-py3-none-any.whl
Algorithm Hash digest
SHA256 d44e7ac73390beed61c5712da54b60888cce2dfa397388182f0e0df7334685d4
MD5 0010d0bbe4dea1a46f433791fd09f92b
BLAKE2b-256 3ea7de0eee6a239b30ecd8f8df6c65f1396b72307a830c5ec325ae48304530b2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page