SkillAgentSearch skills...

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/Jarvis

README

<div align="center"> <!-- Row 1: health & meta -->

<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.

</td> <td align="center" width="33%">

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
View on GitHub
GitHub Stars6
CategoryDevelopment
Updated9d ago
Forks0

Languages

Shell

Security Score

90/100

Audited on Mar 25, 2026

No findings