Package Exports
- @ducci/jarvis
- @ducci/jarvis/src/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@ducci/jarvis) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Jarvis
A fully automated agent system that lives on a server. Will always run, can be started, stopped, restarted. Autorestarts on crash and can be configured via a setup phase. This README is the entry point and links to focused docs for each major topic.
Docs
- Onboarding and Configuration: docs/setup.md
- CLI and Server Lifecycle: docs/cli.md
- Agent system details: docs/agent.md
- UI implementation: docs/ui.md
- Evaluation guide: docs/evaluation.md
Principles (early draft)
- Minimal surface area in v1
- Clear defaults and predictable behavior
- Simple local data model
- No hidden automation
end goal (how i wish the system will be onced finished)
- following what jarvis is doing is super easy to understand for a human
- everything that goes wrong e.g. failed tool calls, or errors from exec calls should be easy to understand for a human
- transparency is very important, without this we can not easily debug or improve the system
- it should work autonomously, i.e. it does not need any instructions from me on decicions but instead decide itself how to achieve whatever its doing
- when working autonomously on a task its given it should know when to stop (task is done in a good quality)
Implementation Roadmap
To reach v1, we will follow this order:
- Phase 1: Project Skeleton [x]
- Scaffolding (
package.json, folder structure). - Basic HTTP server on port
18008.
- Scaffolding (
- Phase 2: Onboarding & Config [x]
jarvis setupCLI command.- Persistence for API keys (
.env) and settings (settings.json).
- Phase 3: Core Agent Loop [x]
- Request/Response flow with OpenRouter.
- Serial tool execution logic (
new Function). - Basic session persistence.
- Seed tool:
list_dir(runsls -la) to verify the full loop end-to-end.
- Phase 4: Lifecycle Management [x]
- CLI
start/stop/statususing programmatic PM2. - Pre-flight configuration checks.
- CLI
- Phase 5: Tools & Refinement [x]
- Implementation of built-in tools (
exec,user_info). - Standardized logging (JSONL).
- Implementation of built-in tools (
- Phase 6: UI [x]
- Vite + React + Tailwind chat interface in
ui/. - Server serves built UI as static files.
- Vite + React + Tailwind chat interface in
Usage
First-time setup
npm install
npm run setupThis prompts for your OpenRouter API key and model selection.
Running in production (background via PM2)
npm start # start the server in the background (auto-restarts on crash)
npm run status # check if it's running (PID, uptime, restarts)
npm run stop # stop the background serverThe server runs on port 18008. Open http://localhost:18008 to use the chat UI.
Logs are written to ~/.jarvis/logs/server.log.
Running in development (foreground)
npm run dev # start the server with nodemon (auto-reload on file changes)To develop the UI with hot-reload:
cd ui
npm install # first time only
npm run dev # starts Vite on port 5173, proxies /api to localhost:18008You need both the server (npm run dev in root) and the UI dev server (npm run dev in ui/) running at the same time. Open http://localhost:5173 during UI development.
Building the UI for production
cd ui
npm run buildThis outputs to ui/dist/, which the Express server serves as static files automatically.
Global install
npm i -g @ducci/jarvis
jarvis setup
jarvis start
jarvis stop
jarvis statusSecurity & Local Usage
Jarvis is designed for local use only. There is no built-in authentication for the API. It is intended to be run on a trusted machine (e.g., your laptop or a private server) where the port is not exposed to the public internet.
Current status, IMPORTANT instructions for LLMs:
- Phase 1 (Skeleton) is implemented.
- Phase 2 (Onboarding & Config) is implemented.
- Phase 3 (Core Agent Loop) is implemented.
- Phase 4 (Lifecycle Management) is implemented.
- Phase 5 (Tools & Refinement) is implemented.
- Phase 6 (UI) is implemented.
- the scope is only this jarvis folder and each file in it. no parent folders or any other outside of this