@ducci/jarvis 1.0.63 → 1.0.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +56 -91
  2. package/package.json +5 -1
package/README.md CHANGED
@@ -1,121 +1,86 @@
1
1
  # Jarvis
2
2
 
3
- 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.
3
+ A self-hosted AI agent that runs as a background server. Chat with it via a web UI or Telegram, give it tools to run shell commands and manage files, and schedule recurring tasks all powered by any model on OpenRouter, z.ai, or the Anthropic API.
4
4
 
5
- ## Docs
5
+ ## Features
6
+
7
+ - **Agent loop** — runs tools autonomously, hands off to a fresh context when it hits the iteration limit, and keeps going until the task is done
8
+ - **Web UI** — built-in chat interface served at `http://localhost:18008`
9
+ - **Telegram** — optional channel adapter; chat from your phone, send photos, get proactive notifications
10
+ - **Cron scheduler** — schedule recurring or one-time tasks in plain English; agent runs them autonomously and can notify you via Telegram
11
+ - **Skills** — Markdown-defined workflows the agent discovers and follows for specific task types
12
+ - **Custom tools** — define tools in JSON (name, description, JS code); the agent picks them up without a restart
13
+ - **Multi-provider** — OpenRouter, z.ai, or Anthropic directly (with prompt caching)
14
+ - **Persistent sessions** — full conversation history per session, sliding context window
6
15
 
7
- - Onboarding and Configuration: [docs/setup.md](./docs/setup.md)
8
- - CLI and Server Lifecycle: [docs/cli.md](./docs/cli.md)
9
- - Agent system details: [docs/agent.md](./docs/agent.md)
10
- - UI implementation: [docs/ui.md](./docs/ui.md)
11
- - Evaluation guide: [docs/evaluation.md](./docs/evaluation.md)
12
-
13
- ## Principles (early draft)
14
-
15
- - Minimal surface area in v1
16
- - Clear defaults and predictable behavior
17
- - Simple local data model
18
- - No hidden automation
19
-
20
- ## end goal (how i wish the system will be onced finished)
21
- - following what jarvis is doing is super easy to understand for a human
22
- - everything that goes wrong e.g. failed tool calls, or errors from exec calls should be easy to understand for a human
23
- - transparency is very important, without this we can not easily debug or improve the system
24
- - 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
25
- - when working autonomously on a task its given it should know when to stop (task is done in a good quality)
26
-
27
- ## Implementation Roadmap
28
-
29
- To reach v1, we will follow this order:
30
-
31
- 1. **Phase 1: Project Skeleton [x]**
32
- - Scaffolding (`package.json`, folder structure).
33
- - Basic HTTP server on port `18008`.
34
- 2. **Phase 2: Onboarding & Config [x]**
35
- - `jarvis setup` CLI command.
36
- - Persistence for API keys (`.env`) and settings (`settings.json`).
37
- 3. **Phase 3: Core Agent Loop [x]**
38
- - Request/Response flow with OpenRouter.
39
- - Serial tool execution logic (`new Function`).
40
- - Basic session persistence.
41
- - Seed tool: `list_dir` (runs `ls -la`) to verify the full loop end-to-end.
42
- 4. **Phase 4: Lifecycle Management [x]**
43
- - CLI `start/stop/status` using programmatic PM2.
44
- - Pre-flight configuration checks.
45
- 5. **Phase 5: Tools & Refinement [x]**
46
- - Implementation of built-in tools (`exec`, `user_info`).
47
- - Standardized logging (JSONL).
48
- 6. **Phase 6: UI [x]**
49
- - Vite + React + Tailwind chat interface in `ui/`.
50
- - Server serves built UI as static files.
51
-
52
- ## Usage
53
-
54
- ### First-time setup
16
+ ## Quick start
55
17
 
56
18
  ```
57
- npm install
58
- npm run setup
19
+ npm i -g @ducci/jarvis
20
+ jarvis setup # configure API key, model, and optionally Telegram
21
+ jarvis start # start the background server (auto-restarts on crash)
59
22
  ```
60
23
 
61
- This prompts for your OpenRouter API key and model selection.
62
-
63
- ### Running in production (background via PM2)
24
+ Open `http://localhost:18008` to use the chat UI.
64
25
 
65
26
  ```
66
- npm start # start the server in the background (auto-restarts on crash)
67
- npm run status # check if it's running (PID, uptime, restarts)
68
- npm run stop # stop the background server
27
+ jarvis stop # stop the server
28
+ jarvis status # show PID, uptime, restart count
69
29
  ```
70
30
 
71
- The server runs on port `18008`. Open `http://localhost:18008` to use the chat UI.
31
+ ## Recommended models
72
32
 
73
- Logs are written to `~/.jarvis/logs/server.log`.
33
+ Any OpenRouter model works, but here's what's worth trying right now:
74
34
 
75
- ### Running in development (foreground)
35
+ | Model | Provider | Notes |
36
+ |---|---|---|
37
+ | `glm-5` | [z.ai](https://z.ai) directly | Personal pick — strong at coding and tool use, great value |
76
38
 
77
- ```
78
- npm run dev # start the server with nodemon (auto-reload on file changes)
79
- ```
39
+ **z.ai tip**: z.ai offers a "Coding Plan Pro" subscription that gives you direct, high-rate access to GLM-5. If you do a lot of agentic coding tasks, it's worth it. Run `jarvis setup` and select z.ai as your provider — it will configure the endpoint and model automatically.
80
40
 
81
- To develop the UI with hot-reload:
41
+ Fallback recommendation: set `fallbackModel` to `openrouter/auto` in `settings.json` so failed requests automatically retry on a capable free model.
82
42
 
83
- ```
84
- cd ui
85
- npm install # first time only
86
- npm run dev # starts Vite on port 5173, proxies /api to localhost:18008
87
- ```
43
+ ## Docs
88
44
 
89
- You 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.
45
+ - [Setup and configuration](./docs/setup.md)
46
+ - [CLI and server lifecycle](./docs/cli.md)
47
+ - [Agent system](./docs/agent.md)
48
+ - [Telegram channel](./docs/telegram.md)
49
+ - [Cron scheduler](./docs/crons.md)
50
+ - [Skills](./docs/skills.md)
51
+ - [Identity and persona](./docs/identity.md)
52
+ - [UI](./docs/ui.md)
90
53
 
91
- ### Building the UI for production
54
+ ## Development
92
55
 
93
56
  ```
94
- cd ui
95
- npm run build
57
+ npm run dev # start server with nodemon (auto-reload)
96
58
  ```
97
59
 
98
- This outputs to `ui/dist/`, which the Express server serves as static files automatically.
60
+ For UI hot-reload, run both the server and the Vite dev server:
61
+
62
+ ```
63
+ npm run dev # server on :18008
64
+ cd ui && npm install && npm run dev # UI on :5173, proxies /api to :18008
65
+ ```
99
66
 
100
- ### Global install
67
+ Build the UI for production:
101
68
 
102
69
  ```
103
- npm i -g @ducci/jarvis
104
- jarvis setup
105
- jarvis start
106
- jarvis stop
107
- jarvis status
70
+ cd ui && npm run build # outputs to ui/dist/, served automatically by the server
108
71
  ```
109
72
 
110
- ## Security & Local Usage
73
+ ## Security
74
+
75
+ Jarvis is designed for **local or private server use only**. The API has no authentication — do not expose port `18008` to the public internet. The `exec` tool runs shell commands with the same permissions as the server process.
76
+
77
+ ## Data
111
78
 
112
- 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.
79
+ All runtime data lives in `~/.jarvis/` and is never stored in the repo:
113
80
 
114
- ## Current status, IMPORTANT instructions for LLMs:
115
- - Phase 1 (Skeleton) is implemented.
116
- - Phase 2 (Onboarding & Config) is implemented.
117
- - Phase 3 (Core Agent Loop) is implemented.
118
- - Phase 4 (Lifecycle Management) is implemented.
119
- - Phase 5 (Tools & Refinement) is implemented.
120
- - Phase 6 (UI) is implemented.
121
- - the scope is only this jarvis folder and each file in it. no parent folders or any other outside of this
81
+ - `~/.jarvis/.env` API keys
82
+ - `~/.jarvis/data/config/settings.json` model, port, channel config
83
+ - `~/.jarvis/data/conversations/` session history
84
+ - `~/.jarvis/data/tools/tools.json` tool registry
85
+ - `~/.jarvis/data/skills/` skill definitions
86
+ - `~/.jarvis/logs/` per-session JSONL logs, cron logs, PM2 stdout
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ducci/jarvis",
3
- "version": "1.0.63",
3
+ "version": "1.0.64",
4
4
  "description": "A fully automated agent system that lives on a server.",
5
5
  "main": "./src/index.js",
6
6
  "type": "module",
@@ -30,6 +30,10 @@
30
30
  "cli",
31
31
  "server"
32
32
  ],
33
+ "repository": {
34
+ "type": "git",
35
+ "url": "https://github.com/duc-gp/-ducci-jarvis.git"
36
+ },
33
37
  "author": "ducci",
34
38
  "engines": {
35
39
  "node": ">=18"