Jarvis
One assistant for my projects: a dashboard on the left, chat with Claude on the right, and a module for each thing it looks after.
- Type
- Software
- Year
- 2026
- Built
- October 2026
- My part
- What it should look after, and the limits it must keep
- Built with
- Claude Code (AI coding assistant)
- Tools
- Python, the Anthropic SDK, SQLite, a plain web page
The idea
I had several projects running, each with its own page or tool. I wanted one place that shows how they’re all doing and that I can ask about them in plain words.
How it works
Jarvis runs on my own computer as a small Python server with a web page: a dashboard on the left and a chat with Claude on the right. Each area it looks after is a module, one Python file. A module says what it can do (its tools) and what its dashboard card shows, and the chat and the page’s buttons both go through the same tools. Today it has modules for my tasks, the monthly work of a small side business, the status of another project’s services, and a memory of things I’ve told it.
Limits by design
The interesting part was deciding what it must never do. Some modules are read-only: Jarvis can read another project’s status, but can never start or stop its services or change its settings. It never sends email or fills in forms by itself, and the moments that matter, such as marking work as delivered, are only ever marked by me. Those rules are written into each module and checked by tests.
Testing
The test suite runs offline: every module, the safety checks, and the chat loop against the real SDK with canned replies, all against a temporary data folder so my real records are never touched.
What I’d do next
Add a voice module, carried over from an older voice assistant of mine.