Jarvis
claude -p as a 24/7 AI ops system: self-healing, local RAG memory, cron automation — $0 extra on your Claude Max subscription
Install / Use
/learn @Ramsbaby/JarvisQuality Score
Category
Development & EngineeringSupported Platforms
README
<a href="https://github.com/Ramsbaby/jarvis/actions/workflows/ci.yml"><img src="https://github.com/Ramsbaby/jarvis/actions/workflows/ci.yml/badge.svg" alt="CI"></a> <a href="https://github.com/Ramsbaby/jarvis/stargazers"><img src="https://img.shields.io/github/stars/Ramsbaby/jarvis?style=flat-square&color=yellow" alt="Stars"></a> <a href="https://github.com/Ramsbaby/jarvis/network/members"><img src="https://img.shields.io/github/forks/Ramsbaby/jarvis?style=flat-square" alt="Forks"></a> <img src="https://img.shields.io/badge/license-MIT-blue?style=flat-square" alt="License"> <img src="https://img.shields.io/badge/node-22+-green?style=flat-square&logo=node.js&logoColor=white" alt="Node 22+"> <img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux-lightgray?style=flat-square" alt="Platform">
<!-- Row 2: key differentiators --> <br> <img src="https://img.shields.io/badge/extra_cost-$0%2Fmonth-brightgreen?style=flat-square" alt="$0/month extra"> <img src="https://img.shields.io/badge/context_compression-98%25-blueviolet?style=flat-square" alt="98% compression"> <img src="https://img.shields.io/badge/session_length-3%2B_hours-blue?style=flat-square" alt="3+ hours"> <img src="https://img.shields.io/badge/AI_teams-12-orange?style=flat-square" alt="12 AI teams"> <img src="https://img.shields.io/badge/cron_tasks-76-orange?style=flat-square" alt="76 cron tasks"> <h1>Jarvis</h1> <img src="docs/assets/hero.svg" alt="Jarvis — 24/7 AI Ops" width="800"> <h3>Turn your idle Claude Max subscription into a 24/7 AI operations system</h3> <p> <strong> You pay $20–$100/month for Claude Max. It sits idle 23 hours a day.<br> Jarvis wires it to Discord, cron jobs, and a local memory engine —<br> so Claude works, monitors, and learns around the clock, at $0 extra.<br> <sub>12 AI teams · 76 cron tasks · self-healing · local RAG memory</sub> </strong> </p> <p> <a href="README.ko.md">한국어</a> · <a href="discord/SETUP.md">Setup Guide</a> · <a href="docs/INDEX.md">Docs</a> · <a href="ROADMAP.md">Roadmap</a> · <a href="CHANGELOG.md">Changelog</a> </p> <img src="docs/demo.gif" alt="Jarvis — bot startup, cron execution, Discord chat, /status command" width="820"> </div>What Is Jarvis?
Jarvis is an automation layer around claude -p — Claude Code's headless print mode. It wires Claude to Discord, scheduled cron jobs, and a local RAG memory system (RAG = Retrieval-Augmented Generation: past conversations, notes, and reports are indexed and fed as context so Claude's answers get smarter over time), turning your existing subscription into a personal AI operations team.
You type in Discord → Claude answers in real time → saved to memory
Cron fires at 8 AM → Claude writes your standup → posted to #bot-daily
You wake up at 9 AM → briefing, alerts, priorities are already there
No Anthropic API key. No metered billing. No cloud. Just claude -p.
The Core Insight: claude -p Is Free
Most Discord bots call the Anthropic API — every message is a paid API call. Jarvis does something different.
claude -p is Claude Code's headless mode — documented by Anthropic as the recommended way to use Claude in automation pipelines. It runs entirely under your existing Claude Max subscription, with no per-call charge.
| | Jarvis | API-based bot | n8n + Claude |
|---|---|---|---|
| How it calls Claude | claude -p (CLI, your subscription) | POST /v1/messages (metered) | API node (metered) |
| 500 msgs/month cost | $0 extra | ~$7–$37 extra | API cost + n8n fee |
| Model quality | Opus / Sonnet (your tier) | Depends on key | Depends on key |
| Proactive automation | 76 scheduled tasks | Reactive only | Needs visual setup |
| Self-healing | 4-layer auto-recovery | ❌ | ❌ |
| Long-term memory | LanceDB hybrid (local) | Rare | Optional plugin |
| Context compression | 98% (Nexus CIG — see below) | ❌ | ❌ |
| Privacy | 100% local | Varies | Varies |
You already pay for the gym. Jarvis is the personal trainer who makes sure you actually use it — all day, every day, even while you sleep.
What Happens While You Sleep
TIME YOU JARVIS
─────────────────────────────────────────────────────────────────
00:30 😴 → Log rotation + cleanup
01:00 😴 → RAG index updated (hourly, incremental)
03:00 😴 → Server maintenance scan → #bot-system
04:45 😴 → Code Auditor reviews all scripts (internal)
07:50 😴 → Trend team: morning briefing → #bot-daily
08:00 😴 → Board Meeting: CEO reviews OKRs → #bot-ceo
08:05 😴 → Smart Standup prepared and posted
09:00 ☕ ← You wake up: briefing, alerts, priorities — ready
10:00 ↔ Real-time Discord chat (you ask, Claude answers)
18:00 ← You stop for the day
20:00 😴 → Record team: daily archive (internal)
─────────────────────────────────────────────────────────────────
76 cron tasks · 12 AI teams · 0 manual steps
Every task has exponential backoff retry, rate-limit awareness, and failure alerts pushed to your phone via ntfy.
Key Numbers
<table> <tr> <td align="center" width="33%">$0 / month
extra cost
Every Discord reply, every cron task, every AI team report calls claude -p — included in your Claude Max or Pro subscription. No API keys, no metered billing.
98%
context compression
Nexus CIG (Context Intelligence Gateway) — an MCP server that intercepts every tool output before it reaches Claude's context window. Measured: 315 KB → 5.4 KB. Multi-turn threads that would exhaust tokens in 30 minutes now run for hours.
</td> <td align="center" width="33%">3+ hours
session length
Without compression, context fills in ~30 min. With Nexus CIG, threads sustain for several hours before auto-compact triggers — critical for long cron chains.
</td> </tr> </table>How It Works
Discord message
│
▼
discord-bot.js ──► handlers.js ──► claude-runner.js
│
claude -p
(your subscription)
│
Nexus CIG (MCP)
98% compression
│
Discord reply + RAG index
│
stored for future context
─────────────────────────────────────────────────────────────────
Cron scheduler ──► jarvis-cron.sh ──► tasks.json
│
cross-team context injected
(from depends[] tasks)
│
claude -p
│
Discord + Obsidian Vault + RAG
<img src="docs/assets/architecture.svg" alt="Jarvis Architecture" width="800">
Self-Healing — 4 Layers (No Human Needed)
| Layer | Trigger | What It Does |
|-------|---------|-------------|
| 0 · Preflight | Every cold start | bot-preflight.sh validates config; if broken, Claude reads the error log and fixes the file itself |
| 1 · OS-level | Any crash | launchd KeepAlive = true (macOS) / Docker restart: always (Linux) — OS-level restart |
| 2 · Watchdog | Every 3 min | watchdog.sh checks log freshness; kills and restarts stale processes |
| 3 · Guardian | Every 3 min | launchd-guardian.sh re-registers unloaded LaunchAgents (macOS) |
Pairing Code — Access Control (No Open Invites)
Jarvis uses a pairing-code system to restrict who can interact with the bot.
New users must enter a one-time pairing code (/pair <code>) before any commands work.
Approved users are stored locally — no Discord role hacking, no public invite links.
12 AI Teams
Each team has a defined role, its own system prompt, and runs on its own cron schedule. They share context through a context-bus.md that the Council writes and every other team reads.
| Team | Schedule | What it does |
|------|----------|-------------|
| Council | Daily 23:00 | Cross-team synthesis; writes priorities to context-bus.md for all teams |
| CEO Digest | Daily 08:00 | Board-level summary: OKR progress, key decisions, overnight events |
| Standup | Daily 08:05 | Morning briefing — calendar, tasks, alerts, market overview |
| Infra | Every 30 min | Server health, process monitoring, cost alerts |
| Finance | Weekdays | Market monitoring, portfolio tracking, TQQQ / ETF signals |
| Trend | Daily 07:50 | News digest and emerging technology signals |
| Recon | Weekly | Competitive intelligence, OSS landscape scan |
| Security Scan | Weekly | Dependency audit, credential leak detection |
| Career | Weekly | Growth reflection, job market trend tracking |
| Academy | Weekly | Research digest, knowledge base management |
| Record | Daily 20:00 | Activity archiving, decision audit log (decisions/*.jsonl) |
| Brand | Weekly | Content positioning tracking |
Cross-team context flow: A Council insight written at 23:00 is automatically injected into the Standup prompt at 08:05 the next morning via the depends[] field in tasks.json. No manual wiring.
What You Actually Get
This is Jarvis running on a real developer's machine. All numbers are measured.
Every morning, before you open your laptop:
- Standup is posted in Discord: calendar summary, top 3 priorities, overnight Jarvis activity
