← Index03 / 04AS·2026.07 · REV A

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.

§ The numbers
100%safety-classifier accuracy (20/20, perfect per-tier P/R)
15registered tools
13HTTP endpoints, 6 SSE event types
26models across 5 providers
2,308lines of backend Python
§ The hard parts

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.