OSCAR
An agent you can trust with your shell.
- Status
- PyPI v0.6.2 · MIT
- Role
- Designer, author, maintainer — solo
- Stack
- Python 3.10+ · FastAPI + SSE · TypeScript VS Code extension · Asterix (my framework) as the runtime · Playwright · Tavily · 5 LLM providers · 26 models
OSCAR is an agentic coding assistant — a VS Code extension and CLI that takes a high-level instruction, decomposes it into an explicit plan, shows you that plan, and only then executes. It specializes in git workflows: branch comparison with LLM-summarized diffs, PR-style reviews with risk assessment, safe shell execution. The interesting part isn't that it acts — it's how it decides when *not* to.
Plan → confirm → execute
Most coding agents act first and apologize later. OSCAR runs a ReAct loop that produces a structured action plan, surfaces it, and gates execution on your confirmation. Human-in-the-loop is the architecture, not an afterthought.
A tiered risk classifier routes every action: low-risk operations auto-approve; medium, high, and dangerous ones require explicit confirmation. On a 20-case labelled benchmark it scores 100% — with perfect precision and recall in every tier.
Two layers, both mine
OSCAR runs on Asterix, my own persistent-memory agent framework, pinned as a real PyPI dependency (asterix-agent==0.2.1). Framework and product, designed together: the callbacks, custom system prompts, and history API in Asterix v0.2.x were built specifically because OSCAR needed them.
The product surface is real: a FastAPI backend with 13 endpoints and 6 SSE event types streaming progress live into a VS Code sidebar, plus a Rich/Click CLI — one codebase, 15 registered tools (9 git, 4 browser, 1 shell, 1 web search).
Eval-driven development
The repo ships a benchmark harness — safety classification, tool selection, latency/token/cost — with offline and online modes, each run writing a timestamped summary. The safety number above is the published one; the harness exists so every release can regenerate the rest.
It runs multi-provider: 5 providers, 26 catalogued models, switchable via environment variables with oscar config-check to verify your setup.
Safety tiers that don't cry wolf
A gate that asks confirmation for everything trains users to click yes. The risk classifier had to auto-approve the boring 80% while never letting a dangerous operation through unflagged — that's why the benchmark measures per-tier precision and recall, not just accuracy.
Streaming an agent's mind
Watching an agent think is a UX problem: 6 SSE event types stream plan, progress, tool calls, and results into the sidebar so the user always knows what's about to happen before it does.