@sulala/agent-os 0.1.19 → 0.1.20
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.
- package/README.md +111 -37
- package/dashboard-dist/assets/index-B3C3mWft.js +72 -0
- package/dashboard-dist/index.html +1 -1
- package/dist/cli.js +155 -59
- package/dist/index.js +150 -51
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -1,8 +1,31 @@
|
|
|
1
|
-
# Agent OS
|
|
1
|
+
# Sulala Agent OS
|
|
2
2
|
|
|
3
|
-
Lightweight **Bun-based Agent Operating System** — micro-agents, installable skills, workflows.
|
|
3
|
+
Lightweight **Bun-based Agent Operating System** — micro-agents, installable skills, workflows, and a web dashboard.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
**From npm (Bun or Node 18+):**
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
bun add -g @sulala/agent-os
|
|
11
|
+
# or: npm install -g @sulala/agent-os
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
**One-line install (macOS & Linux):**
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
curl -fsSL --proto '=https' --tlsv1.2 https://sulala.ai/install.sh | bash
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
**Windows (PowerShell):**
|
|
21
|
+
|
|
22
|
+
```powershell
|
|
23
|
+
irm -useb https://sulala.ai/install.ps1 | iex
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
After install, run `sulala onboard` to create config, seed agents, and open the dashboard. The installer prints a **dashboard login token** — copy it to log in at `http://127.0.0.1:3010`.
|
|
27
|
+
|
|
28
|
+
## Quick start (from source)
|
|
6
29
|
|
|
7
30
|
```bash
|
|
8
31
|
# Install deps
|
|
@@ -11,7 +34,7 @@ bun install
|
|
|
11
34
|
# For dev, agents are loaded from ./data/agents (pre-configured).
|
|
12
35
|
# For production, copy to ~/.agent-os/agents/ or set AGENT_OS_AGENTS_DIR.
|
|
13
36
|
|
|
14
|
-
# Set LLM API key (OpenAI or
|
|
37
|
+
# Set LLM API key (OpenAI, OpenRouter, Anthropic, or Google — or add in Dashboard → Settings)
|
|
15
38
|
export OPENAI_API_KEY=sk-...
|
|
16
39
|
# or: export OPENROUTER_API_KEY=sk-or-...
|
|
17
40
|
|
|
@@ -19,19 +42,72 @@ export OPENAI_API_KEY=sk-...
|
|
|
19
42
|
bun run dev
|
|
20
43
|
```
|
|
21
44
|
|
|
22
|
-
Then:
|
|
45
|
+
Then open **http://127.0.0.1:3010** for the dashboard. If the dashboard isn’t built yet, run from package root:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
cd dashboard && npm install && npm run build && cd ..
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Then restart `bun run dev`.
|
|
52
|
+
|
|
53
|
+
## Dashboard
|
|
54
|
+
|
|
55
|
+
The web UI at **http://127.0.0.1:3010** (or your `PORT`) lets you:
|
|
56
|
+
|
|
57
|
+
- **Agents** — Create, edit, and run agents
|
|
58
|
+
- **Chat** — Talk to an agent with streaming and attachments
|
|
59
|
+
- **Graphs** — Multi-agent workflows
|
|
60
|
+
- **Skills** — Install and configure skills from the marketplace
|
|
61
|
+
- **Schedules** — Cron-style runs
|
|
62
|
+
- **Memory** — View and search agent memory
|
|
63
|
+
- **Settings** — AI provider keys, Telegram/Slack/Discord/Viber, and dashboard access
|
|
64
|
+
|
|
65
|
+
### Dashboard access (gateway token)
|
|
66
|
+
|
|
67
|
+
The server protects the dashboard with a **gateway token** (stored in `~/.agent-os/config.json` or set via `DASHBOARD_SECRET`). To get or regenerate it:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# View current token (copy and paste in the dashboard login)
|
|
71
|
+
sulala dashboard-token
|
|
72
|
+
|
|
73
|
+
# Generate a new token (then restart the server)
|
|
74
|
+
sulala dashboard-token --regenerate
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
After `sulala onboard`, the token is printed in the terminal — copy it to log in. You can also regenerate the token from **Settings → Dashboard access** in the dashboard (restart the server for the new token to take effect).
|
|
78
|
+
|
|
79
|
+
## CLI
|
|
80
|
+
|
|
81
|
+
When installed globally, the `sulala` CLI is available:
|
|
82
|
+
|
|
83
|
+
| Command | Description |
|
|
84
|
+
|--------|-------------|
|
|
85
|
+
| `sulala start` | Start the server (foreground) |
|
|
86
|
+
| `sulala start --daemon` | Start the server in the background |
|
|
87
|
+
| `sulala stop` | Stop the daemon (macOS/Linux) |
|
|
88
|
+
| `sulala onboard` | First-time setup: create config, seed agents, open dashboard |
|
|
89
|
+
| `sulala dashboard-token` | Show the dashboard login token |
|
|
90
|
+
| `sulala dashboard-token --regenerate` | Generate a new token (restart server after) |
|
|
91
|
+
| `sulala run <agent_id> <task>` | Run an agent with a one-off task |
|
|
92
|
+
| `sulala update` | Update package and system agents/skills |
|
|
93
|
+
| `sulala version` | Show version |
|
|
94
|
+
|
|
95
|
+
Example:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
sulala run echo_agent "What is 2+2?"
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## HTTP API
|
|
23
102
|
|
|
24
103
|
```bash
|
|
25
104
|
# List agents
|
|
26
105
|
curl http://127.0.0.1:3010/api/agents
|
|
27
106
|
|
|
28
|
-
# Run agent (HTTP)
|
|
107
|
+
# Run agent (HTTP). If the server uses a gateway token, add: -H "Authorization: Bearer <token>"
|
|
29
108
|
curl -X POST http://127.0.0.1:3010/api/agents/run \
|
|
30
109
|
-H "Content-Type: application/json" \
|
|
31
110
|
-d '{"agent_id":"echo_agent","task":"Hello, what can you do?"}'
|
|
32
|
-
|
|
33
|
-
# Or run from CLI
|
|
34
|
-
AGENT_OS_AGENTS_DIR=./data/agents bun run cli echo_agent "What is 2+2?"
|
|
35
111
|
```
|
|
36
112
|
|
|
37
113
|
## Configuration
|
|
@@ -40,25 +116,37 @@ AGENT_OS_AGENTS_DIR=./data/agents bun run cli echo_agent "What is 2+2?"
|
|
|
40
116
|
|-----|-------------|
|
|
41
117
|
| `PORT` | Server port (default: 3010) |
|
|
42
118
|
| `HOST` | Server host (default: 127.0.0.1) |
|
|
119
|
+
| `AGENT_OS_HOME` | Config and data directory (default: ~/.agent-os) |
|
|
120
|
+
| `DASHBOARD_SECRET` | Optional. Dashboard gateway token; if unset, a token is auto-generated and stored in config. View or regenerate: `sulala dashboard-token` |
|
|
43
121
|
| `OPENAI_API_KEY` | OpenAI API key |
|
|
44
|
-
| `
|
|
122
|
+
| `ANTHROPIC_API_KEY` | Anthropic API key |
|
|
123
|
+
| `GOOGLE_API_KEY` | Google AI API key |
|
|
124
|
+
| `OPENROUTER_API_KEY` | OpenRouter API key |
|
|
45
125
|
| `AGENT_OS_AGENTS_DIR` | Override agents directory (default: ~/.agent-os/agents/) |
|
|
126
|
+
| `AGENT_MEMORY_DB_PATH` | SQLite path for memory (default: ~/.agent-os/database.db) |
|
|
127
|
+
|
|
128
|
+
API keys can also be set in **Dashboard → Settings → AI Provider** and are stored in `~/.agent-os/config.json`.
|
|
46
129
|
|
|
47
130
|
## Project structure
|
|
48
131
|
|
|
49
132
|
```
|
|
50
|
-
|
|
133
|
+
sulala/
|
|
51
134
|
src/
|
|
52
|
-
core/ # Agent registry, runtime, LLM,
|
|
53
|
-
|
|
54
|
-
|
|
135
|
+
core/ # Agent registry, runtime, LLM, config
|
|
136
|
+
http/ # API handlers, channels (Telegram, Slack, etc.)
|
|
137
|
+
skills/ # Skill loader, tools
|
|
138
|
+
tools/ # Built-in tools (exec, run-agent, etc.)
|
|
139
|
+
server.ts # HTTP API + dashboard static
|
|
140
|
+
cli.ts # sulala CLI
|
|
55
141
|
index.ts # Entry point
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
142
|
+
dashboard/ # Vite + React dashboard (build → dashboard-dist)
|
|
143
|
+
data/ # Agents, skills, templates
|
|
144
|
+
install.sh # One-line install (macOS/Linux)
|
|
145
|
+
install.ps1 # One-line install (Windows)
|
|
146
|
+
docs/ # Specs and setup guides
|
|
59
147
|
```
|
|
60
148
|
|
|
61
|
-
## Built-in tools
|
|
149
|
+
## Built-in tools
|
|
62
150
|
|
|
63
151
|
| Tool | Description |
|
|
64
152
|
|--------|---------------------------|
|
|
@@ -67,7 +155,7 @@ tinyagent/
|
|
|
67
155
|
|
|
68
156
|
Agents get all tools by default. Restrict via `tools: ["echo"]` in agent config.
|
|
69
157
|
|
|
70
|
-
## Skills
|
|
158
|
+
## Skills
|
|
71
159
|
|
|
72
160
|
Skills live under `~/.agent-os/skills/<name>/` (or `AGENT_OS_SKILLS_DIR`). Example:
|
|
73
161
|
|
|
@@ -77,26 +165,12 @@ Skills live under `~/.agent-os/skills/<name>/` (or `AGENT_OS_SKILLS_DIR`). Examp
|
|
|
77
165
|
tools.yaml
|
|
78
166
|
```
|
|
79
167
|
|
|
80
|
-
Agents declare skills
|
|
81
|
-
|
|
82
|
-
```json
|
|
83
|
-
{
|
|
84
|
-
"id": "weather_agent",
|
|
85
|
-
"name": "Weather Assistant",
|
|
86
|
-
"model": "gpt-4o-mini",
|
|
87
|
-
"skills": ["weather"],
|
|
88
|
-
"tools": ["weather_current"]
|
|
89
|
-
}
|
|
90
|
-
```
|
|
168
|
+
Agents declare skills in their config; install default skills from the **Dashboard → Skills** marketplace. The skill loader reads `tools.yaml` and registers HTTP tools into the tool registry.
|
|
91
169
|
|
|
92
|
-
|
|
170
|
+
## Channels (Telegram, Slack, Discord, …)
|
|
93
171
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
You can talk to your agent from Telegram. Create a bot with [@BotFather](https://t.me/BotFather), add the token and default agent in **Dashboard → Settings → Telegram**, expose your server over HTTPS (e.g. ngrok), and set the webhook. Full steps: [doc/TELEGRAM_SETUP.md](doc/TELEGRAM_SETUP.md).
|
|
172
|
+
You can talk to your agent from Telegram, Slack, Discord, Signal, or Viber. Create a bot (e.g. [@BotFather](https://t.me/BotFather) for Telegram), add the token and default agent in **Dashboard → Settings**, expose your server over HTTPS (e.g. ngrok), and set the webhook. Full steps for Telegram: [doc/TELEGRAM_SETUP.md](doc/TELEGRAM_SETUP.md) (if present).
|
|
97
173
|
|
|
98
174
|
## Roadmap
|
|
99
175
|
|
|
100
|
-
See [roadmap.md](./roadmap.md) for phases. Phases 1–3 (Core Runtime, Tool System, Skill System) are implemented
|
|
101
|
-
|
|
102
|
-
# sulala
|
|
176
|
+
See [roadmap.md](./roadmap.md) for phases. Phases 1–3 (Core Runtime, Tool System, Skill System) are implemented; dashboard, gateway auth, and channels are in place.
|