personal autonomous agent // v24/7

JARVIS

You write the tests. Free models grind the implementation. Claude reviews. You merge.

jarvis@core — boot.log

SYS.OVERVIEW // 01

What it is

Jarvis is a personal, voice-activated agent that runs around the clock. Its core tool is an autonomous software-delivery pipeline: you define a task and the acceptance tests, a cascade of free coding models grinds the implementation, Claude gates the review, and the result lands as a pull request only you can merge. Safety comes from constraints, not trust.

LIVES IN DISCORD

Chat or talk — messages and voice notes. WhatsApp channel on the roadmap.

RUNS 24/7

Persistent agents on an event bus, with a dead-man's-switch failsafe watching cost, disk, and stalled tasks.

SDLC AT THE CORE

An autonomous pipeline turns a TASK.md plus your acceptance tests into a reviewed pull request.

PLUGIN TOOLS

Drop a Python file in tools/ and it just works — auto-discovered, no wiring.

SYS.PIPELINE // 02

The Pipeline

STEP 01

YOU WRITE TASK.md + TESTS

Describe the feature and write the acceptance tests. Tests are read-only — the agent can never touch them. This breaks circular validation.

STEP 02

FREE MODELS GRIND

runner.py cascades Qwen3-Coder → DeepSeek V3 → Kimi K2.5, extracting code into the workspace. Up to 15 iterations per task.

STEP 03

TESTS RUN IN A SANDBOX

Your acceptance tests execute against the generated code — in a Docker container with memory and CPU caps when enabled. Failures feed back to the model.

STEP 04

CLAUDE REVIEWS

orchestrator.py sends passing work through a Claude review gate. Rejected work re-runs up to 3×, then escalates to NEEDS_HUMAN.

STEP 05

PR — YOU MERGE

Approved code becomes a pull request on an agent/ branch. The agent can propose; only you can merge. No exceptions.

task lifecycleNEWRUNNINGREVIEW_READYAPPROVEDPR_CREATED↩ REVIEW_FAILED retries ≤3× → NEEDS_HUMAN · RUNNING → STUCK on budget/iteration caps

SYS.SWARM // 03

Meet the Swarm

One-shot Claude sessions, no auto-compaction — everything an agent needs rides in the prompt. Persistent agents watch an in-process event bus; ephemeral ones are spawned per task and die when the work is done.

JARVIS

PERSISTENT

Interface

The dry-wit companion bot in Discord. Remembers you via Mem0, classifies every message as chat or execute, and narrates results back.

ollama + free tier

NANAMI

PERSISTENT

Supervisor

Technical project manager with her own bot identity. Evaluates every task request, never approves without a tech-stack discussion, spawns executors for approved work.

opus

AIZEN

EPHEMERAL

Task Executor

Pure executor — one instance per task. Decomposes work into atomic sub-tasks and runs independent ones in parallel. Never questions requirements.

sonnet

STARK

EPHEMERAL

Sub-task Executor

One per sub-task. Crafts a tailored system prompt, runs a single one-shot Claude session, then verifies the output actually matches the spec.

opus → haiku verify

KAREN

PERSISTENT

Critic

Watches phase completions and critiques approach, scope creep, and wasted effort. Three unresolved rounds and she escalates to you.

sonnet

SENTINEL

PERSISTENT

Immune System

Watches how the system operates, not what it produces. Classifies failures, applies repair actions, and escalates what it cannot fix.

opus max

CORTEX

PERSISTENT

Brain

Handles direct execute requests with MCP tools — plans ordered steps across domain agents and returns results for Jarvis to narrate.

opus + MCP

SURGEON

EPHEMERAL

Last Resort

Tier-3 repair. When Sentinel's registry of fixes can't heal a failing component, the Surgeon is called in for manual intervention.

opus

SYS.ECONOMY // 04

The Cost Story

A premium model subscription should not be burned on a grinding implementation loop. The runner tries free models in order and falls back on rate limits or errors — free models never decide, they only execute against specs and tests you wrote. Claude decides, reviews, and catches what they missed.

P1

Qwen3-Coder 480B

via OpenRouter

FREE · ~200 req/day

Strongest free coding model. 262K context — the overnight workhorse.

P2

DeepSeek V3

via OpenRouter

FREE tier · $0.15/$0.75 per 1M paid

~90% of frontier capability on routine tasks. Fallback when rate limits bite.

P3

Kimi K2.5

via NVIDIA NIM

FREE

Excellent at turning specs into UI code. Verbose reasoning — irrelevant when free.

budget guardrails

  • Max iterations / task15
  • Max cost / task$5.00
  • Max cost / day$15.00
  • Test timeout120s
  • Cooldown after failure30s

A dead-man's-switch failsafe runs health checks on a schedule — long-running processes, daily cost, disk usage, stale tasks.

SYS.DOMAINS // 05

Beyond the Pipeline

The SDLC loop is the core tool — around it sits a swarm of domain agents and services that run parts of daily life.

COMMS

Gmail, Google Calendar, and SMS via Twilio — triage, scheduling, and notifications from one agent.

HOME

Home Assistant integration for lights, scenes, and devices — controlled from chat or voice.

FINANCE

Plaid-backed accounts with a SQLite budget tracker. Ask where the money went.

RESEARCH

Deep-dive questions answered by Claude with tool access, narrated back in Discord.

DESKTOP

Windows APIs, Spotify, and ESP32 hardware — plus a PC gateway over Tailscale with Wake-on-LAN.

SOCIAL

Full browser automation over Chrome DevTools Protocol: X, Reddit, Instagram, LinkedIn, Peerlist.

VOICE PIPELINE

Wake word, streaming STT, and TTS — talk to it like the namesake.

CONTENT STRATEGIST

An IdeaMiner reads your repos' diffs, scores post-worthy ideas into an Idea Bank, and Opus drafts on-brand posts for X and LinkedIn — with a feedback loop that learns your taste.

PLUGIN TOOLS

reddit, twitter, instagram, linkedin, browse, watch, music, pc — drop a Python file in tools/ and it's live.

ACTION PIPELINE

Reversible actions auto-proceed. Irreversible ones need your approval. Everything is recorded to Scribe.

SYS.SECURITY // 06

Safety from Constraints

The design rule is simple: safety comes from constraints, not trust. Every layer assumes the model will eventually produce something hostile or broken — and boxes it in.

Agent modifies your tests

Read-only enforcement — tests are copied into the workspace and all model output is filtered against readonly patterns.

Path traversal in model output

extract_files() rejects .. segments, absolute paths, backslashes, and colons.

Command injection via test_command

Prefix allowlist — npm, npx, python, pytest. Nothing else executes.

Agent merges its own code

It can only open PRs on agent/ branches. You merge. No exceptions.

Runaway API cost

Per-task and per-day budgets, plus a scheduled failsafe dead-man's switch.

Malicious code in test runs

Tests execute in a Docker sandbox with memory and CPU limits when enabled.

SYS.INIT // 07

Quick Start

terminal

$pip install -r requirements.txt

# install dependencies

$cp .env.example .env # add your OpenRouter key

# configure

$python runner.py tasks/demo-task

# run the demo task

$python orchestrator.py

# scheduler + review gate + PRs

The demo task is a working URL shortener: the runner reads the spec and your tests, calls Qwen3-Coder for free, generates code into the workspace, runs your tests, and feeds failures back until they pass — up to 15 iterations.

To run your own feature, create a folder in tasks/ with a TASK.md and your acceptance tests. The agent writes code; it can never write your tests.

Read the full README →