DEV Community

ramsbaby
ramsbaby

Posted on • Originally published at github.com

I built Jarvis — a self-hosted AI butler on Discord powered by Claude

TL;DR

Jarvis is a self-hosted personal AI assistant that lives in your Discord server. It runs on Claude (Anthropic), manages tasks, reads Preply schedules, executes shell commands, monitors systems, stores long-term memory via RAG, and coordinates multiple AI agents — all from your phone via Discord.

GitHub: https://github.com/ramsbaby/jarvis


Why I built this

I wanted an AI assistant that:

  • Lives on my phone (Discord mobile)
  • Remembers context across sessions (RAG memory)
  • Actually executes things — not just chat
  • Runs on my own hardware — no cloud lock-in
  • Is extensible — new agents, new tools, new channels

Existing solutions were either too limited (just chat) or too complex to self-host. So I built Jarvis.


Architecture

Discord (mobile UI)
    │
    ▼
discord-bot.js        ← message router
    │
    ├── Claude API    ← LLM backbone (claude-3-5-sonnet)
    ├── MCP Tools     ← exec / file / health / rag / nexus
    ├── Agent SDK     ← multi-agent orchestration
    └── LaunchAgents  ← macOS scheduled crons
Enter fullscreen mode Exit fullscreen mode

Jarvis runs as a macOS LaunchAgent (launchd), auto-starting on login. All scheduled tasks (daily KPIs, security scans, weekly career reviews) are also LaunchAgents — no crontab hacks.


Key Features

🤖 Multi-Agent Council

Multiple specialized agents (Career, Finance, Security, Health) run on schedules and post summaries to dedicated Discord channels. A Council agent synthesizes insights across all agents.

🧠 RAG Memory

Conversation history + context files are embedded and searchable. Ask "기억해?" ("remember?") and Jarvis searches vector memory, not just the current context window.

⚙️ Real Execution

Jarvis can run shell commands, peek at files, tail logs, check system health, list/create/delete cron jobs — all from Discord.

📅 Schedule-Aware

Integrated with Preply (wife's tutoring schedule) — ask "오늘 수업 있어?" and get today's lessons with earnings.

🔒 Secret-Safe

API keys live in $BOT_HOME/config/secrets/ (gitignored). The install script sets up the directory structure and guides through token setup.


Installation (30 seconds)

git clone https://github.com/ramsbaby/jarvis
cd jarvis
bash install.sh
Enter fullscreen mode Exit fullscreen mode

Requires: Node 22+, macOS (LaunchAgents), Claude API key, Discord bot token.


What I learned

1. Discord is a surprisingly great AI UI. Mobile notifications, slash commands, channel-based context separation — it works better than any custom web UI I could have built.

2. LaunchAgents > crontab. On macOS, com.vix.cron is often disabled. LaunchAgents are more reliable, survive reboots, and have proper logging.

3. MCP (Model Context Protocol) is genuinely powerful. Giving Claude structured tools (exec, rag_search, health) instead of free-form text makes responses dramatically more accurate and actionable.

4. RAG memory changes the relationship with an AI. When it actually remembers past conversations, it stops feeling like a tool and starts feeling like a collaborator.


Current Status

  • v1.1.0 released (2026-03-17)
  • 64 E2E tests passing
  • GitHub Actions CI passing (Node 22)
  • Used daily for task management, system monitoring, schedule tracking

What's next

  • Phase 3: Discord /approve for AI-drafted documents
  • Web dashboard (read-only)
  • Linux / systemd support
  • More agent types (Finance deep-dive, Travel planner)

If you're building something similar or have feedback, I'd love to hear it. Star the repo if it's useful ⭐

https://github.com/ramsbaby/jarvis

Top comments (0)