@withbuddi/buddi 0.1.0-pre.14 → 0.1.0-pre.16
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 +353 -0
- package/node_modules/@buddi/cli/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.d.ts.map +1 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.js +7 -1
- package/node_modules/@buddi/cli/dist/doctor-probes.js.map +1 -1
- package/node_modules/@buddi/cli/dist/main.js +0 -0
- package/node_modules/@buddi/cli/dist/mcp/tools.js +8 -4
- package/node_modules/@buddi/cli/dist/mcp/tools.js.map +1 -1
- package/node_modules/@buddi/core/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/core/dist/agents/frontmatter.d.ts +8 -8
- package/node_modules/@buddi/core/dist/agents/skills.d.ts +14 -14
- package/node_modules/@buddi/core/dist/backup/archive.d.ts +16 -1
- package/node_modules/@buddi/core/dist/backup/archive.d.ts.map +1 -1
- package/node_modules/@buddi/core/dist/backup/archive.js +83 -38
- package/node_modules/@buddi/core/dist/backup/archive.js.map +1 -1
- package/node_modules/@buddi/core/dist/cli-migrate.js +0 -0
- package/node_modules/@buddi/core/dist/pages.d.ts +12 -12
- package/node_modules/@buddi/core/dist/secrets/approval.d.ts +4 -4
- package/node_modules/@buddi/core/dist/views.d.ts +282 -282
- package/node_modules/@buddi/gateway/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/gateway/dist/agents/canvas.d.ts +56 -56
- package/node_modules/@buddi/gateway/dist/agents/platform.d.ts +16 -16
- package/node_modules/@buddi/gateway/dist/missions-cli.js +0 -0
- package/node_modules/@buddi/gateway/dist/provider-accounts.d.ts +2 -2
- package/node_modules/@buddi/gateway/dist/serve.js +0 -0
- package/node_modules/@buddi/gateway/dist/telegram/main.js +0 -0
- package/node_modules/@buddi/install/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/runtime/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-artifacts/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/computer.d.ts +4 -4
- package/node_modules/@buddi/tool-browser/dist/types.d.ts +44 -44
- package/node_modules/@buddi/tool-email/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-email/dist/pages/accounts.d.ts +2 -2
- package/node_modules/@buddi/tool-email/dist/pages/drafts-tools.d.ts +4 -4
- package/node_modules/@buddi/tool-email/dist/pages/policies-tools.d.ts +8 -8
- package/node_modules/@buddi/tool-email/dist/tools/attachments.d.ts +2 -2
- package/node_modules/@buddi/tool-email/dist/tools/drafts.d.ts +8 -8
- package/node_modules/@buddi/tool-email/dist/tools/policies.d.ts +8 -8
- package/node_modules/@buddi/tool-email/dist/tools/read.d.ts +8 -8
- package/node_modules/@buddi/tool-email/dist/tools/settings.d.ts +4 -4
- package/node_modules/@buddi/tool-email/dist/tools/threads.d.ts +2 -2
- package/node_modules/@buddi/tool-email/dist/tools/triage.d.ts +4 -4
- package/node_modules/@buddi/tool-host/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-memory/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-web/dist/.tsbuildinfo +1 -1
- package/package.json +7 -1
- package/packages/cli/dist/.tsbuildinfo +1 -1
- package/packages/cli/dist/doctor-probes.d.ts.map +1 -1
- package/packages/cli/dist/doctor-probes.js +7 -1
- package/packages/cli/dist/doctor-probes.js.map +1 -1
- package/packages/cli/dist/main.js +0 -0
- package/packages/cli/dist/mcp/tools.js +8 -4
- package/packages/cli/dist/mcp/tools.js.map +1 -1
- package/packages/core/dist/.tsbuildinfo +1 -1
- package/packages/core/dist/agents/frontmatter.d.ts +8 -8
- package/packages/core/dist/agents/skills.d.ts +14 -14
- package/packages/core/dist/backup/archive.d.ts +16 -1
- package/packages/core/dist/backup/archive.d.ts.map +1 -1
- package/packages/core/dist/backup/archive.js +83 -38
- package/packages/core/dist/backup/archive.js.map +1 -1
- package/packages/core/dist/cli-migrate.js +0 -0
- package/packages/core/dist/pages.d.ts +12 -12
- package/packages/core/dist/secrets/approval.d.ts +4 -4
- package/packages/core/dist/views.d.ts +282 -282
- package/packages/gateway/dist/.tsbuildinfo +1 -1
- package/packages/gateway/dist/agents/canvas.d.ts +56 -56
- package/packages/gateway/dist/agents/platform.d.ts +16 -16
- package/packages/gateway/dist/missions-cli.js +0 -0
- package/packages/gateway/dist/provider-accounts.d.ts +2 -2
- package/packages/gateway/dist/serve.js +0 -0
- package/packages/gateway/dist/telegram/main.js +0 -0
- package/packages/install/dist/.tsbuildinfo +1 -1
- package/packages/runtime/dist/.tsbuildinfo +1 -1
- package/packages/tools/artifacts/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/.tsbuildinfo +1 -1
- package/packages/tools/browser/dist/computer.d.ts +4 -4
- package/packages/tools/browser/dist/types.d.ts +44 -44
- package/packages/tools/email/dist/.tsbuildinfo +1 -1
- package/packages/tools/email/dist/pages/accounts.d.ts +2 -2
- package/packages/tools/email/dist/pages/drafts-tools.d.ts +4 -4
- package/packages/tools/email/dist/pages/policies-tools.d.ts +8 -8
- package/packages/tools/email/dist/tools/attachments.d.ts +2 -2
- package/packages/tools/email/dist/tools/drafts.d.ts +8 -8
- package/packages/tools/email/dist/tools/policies.d.ts +8 -8
- package/packages/tools/email/dist/tools/read.d.ts +8 -8
- package/packages/tools/email/dist/tools/settings.d.ts +4 -4
- package/packages/tools/email/dist/tools/threads.d.ts +2 -2
- package/packages/tools/email/dist/tools/triage.d.ts +4 -4
- package/packages/tools/host/dist/.tsbuildinfo +1 -1
- package/packages/tools/memory/dist/.tsbuildinfo +1 -1
- package/packages/tools/web/dist/.tsbuildinfo +1 -1
- package/node_modules/@buddi/tool-browser/dist/native/buddi-computer +0 -0
- package/packages/tools/browser/dist/native/buddi-computer +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
# buddi
|
|
2
|
+
|
|
3
|
+
<img src="packages/web/public/mascot/core.png" alt="The Buddi Blob, buddi's mascot" width="160" align="right">
|
|
4
|
+
|
|
5
|
+
buddi is a personal agent platform you run on your own machine. An agent is a
|
|
6
|
+
markdown file: a front matter that names the tools it may call, and a body that
|
|
7
|
+
is its persona. Agents get real access: your mail, your files, a browser of
|
|
8
|
+
their own, commands on the machine. They reach you on a dashboard in your
|
|
9
|
+
browser and on Telegram. They also work while you are away: scheduled
|
|
10
|
+
missions, watchers that speak only when something is wrong, reminders they set
|
|
11
|
+
themselves. Anything consequential waits for your approval, as a card you
|
|
12
|
+
approve or reject.
|
|
13
|
+
|
|
14
|
+
Everything stays on your machine, in a private Postgres. The one thing that
|
|
15
|
+
leaves is each agent's prompt, sent to the AI provider that agent's file names.
|
|
16
|
+
So one line in one file decides which company sees that agent's conversations.
|
|
17
|
+
Secrets live in a vault the agents can use but never see.
|
|
18
|
+
|
|
19
|
+
The first agent is called buddi. It wears the Buddi Blob.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Install
|
|
24
|
+
|
|
25
|
+
You need Node 22 or newer. Nothing else: no Docker, no pnpm, no build step.
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
npm install -g @withbuddi/buddi
|
|
29
|
+
buddi
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The first `buddi` does five things, one line each in the terminal, and asks
|
|
33
|
+
nothing:
|
|
34
|
+
|
|
35
|
+
1. creates the data directory,
|
|
36
|
+
2. sets up a private Postgres inside it, on a loopback port, with a password
|
|
37
|
+
only the vault holds,
|
|
38
|
+
3. writes the few settings the service needs to start,
|
|
39
|
+
4. installs the background service and starts it: a launchd agent on macOS, a
|
|
40
|
+
systemd user unit on Linux,
|
|
41
|
+
5. opens the setup wizard in your browser.
|
|
42
|
+
|
|
43
|
+
Every later `buddi` opens the dashboard. The link it prints is a sign-in link
|
|
44
|
+
good for five minutes; run `buddi` or `buddi dashboard` again for a new one.
|
|
45
|
+
|
|
46
|
+
The dashboard listens on `127.0.0.1:4317`. To use another port:
|
|
47
|
+
|
|
48
|
+
```sh
|
|
49
|
+
BUDDI_WEB_PORT=4417 buddi
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**The browser.** The agents' own browser needs a browser binary, and the
|
|
53
|
+
package ships none. If Google Chrome is installed, buddi uses it. If not, the
|
|
54
|
+
wizard offers to fetch Chromium (about 150 MB), or you can run
|
|
55
|
+
`buddi browser install` at any time.
|
|
56
|
+
|
|
57
|
+
**Telegram.** The wizard can pair your phone: you ask @BotFather for a bot,
|
|
58
|
+
paste the token, and scan the QR code it draws. `buddi telegram pair` does the
|
|
59
|
+
same from a terminal.
|
|
60
|
+
|
|
61
|
+
**On Linux.** There is no OS keychain, so secrets go in an encrypted file vault
|
|
62
|
+
in the data directory, opened by a key stored beside it (`vault-key`, mode
|
|
63
|
+
600). Anyone who can read your data directory can open the vault; a backup is
|
|
64
|
+
different, it is sealed with your passphrase. On a server with no display the
|
|
65
|
+
agents' browser runs headless. The systemd user unit stops when you log out
|
|
66
|
+
unless you run this once:
|
|
67
|
+
|
|
68
|
+
```sh
|
|
69
|
+
loginctl enable-linger $USER
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Pre-releases.** Until 0.1 is out, releases are published under the `next`
|
|
73
|
+
tag:
|
|
74
|
+
|
|
75
|
+
```sh
|
|
76
|
+
npm install -g @withbuddi/buddi@next
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
The full install story, including what is not built yet, is
|
|
80
|
+
[docs/install.md](docs/install.md).
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## The first ten minutes
|
|
85
|
+
|
|
86
|
+
**The wizard.** buddi asks four things, one at a time, in a chat thread:
|
|
87
|
+
|
|
88
|
+
1. **Your name**, so the agents know what to call you.
|
|
89
|
+
2. **Your clock**, taken from the browser; confirm it or pick another. This is
|
|
90
|
+
what every agent means by "today".
|
|
91
|
+
3. **A brain**: the AI your assistant thinks with. An API key from Anthropic
|
|
92
|
+
or OpenAI; Ollama running on this computer; Ollama Cloud or another
|
|
93
|
+
OpenAI-compatible service, with an address and a key; or Claude, with your
|
|
94
|
+
Claude subscription, where this build enables it. buddi tests it with one
|
|
95
|
+
small call before moving on.
|
|
96
|
+
4. **Your assistant**: a name (buddi by default), a face (the Buddi Blob, or
|
|
97
|
+
another mascot or an emoji), and a persona you can keep or rewrite.
|
|
98
|
+
|
|
99
|
+
Between the brain and the assistant, buddi checks the browser and fetches one
|
|
100
|
+
if it has to. Then the assistant speaks first, in the same thread, and offers
|
|
101
|
+
to reach you on your phone. Every answer keeps a "change" link, and a reload
|
|
102
|
+
resumes where you were. [docs/onboarding.md](docs/onboarding.md) is the full
|
|
103
|
+
script.
|
|
104
|
+
|
|
105
|
+
**The first chat.** A few things to try:
|
|
106
|
+
|
|
107
|
+
- "What can you do?" It answers from the tools its file grants it.
|
|
108
|
+
- "Remind me to call the bank tomorrow at 10." A reminder it sets itself, and
|
|
109
|
+
you can see it on the Reminders page.
|
|
110
|
+
- "Take a screenshot of example.com." It opens its own browser, asks you
|
|
111
|
+
first, and shows the page on the canvas beside the chat.
|
|
112
|
+
- Drop a PDF or a CSV on the chat and ask about it.
|
|
113
|
+
- "Every Friday at 6, send me a recap of the week." A mission, on a schedule.
|
|
114
|
+
|
|
115
|
+
**A mailbox.** In Settings → Email, add an account with its address and an app
|
|
116
|
+
password. buddi then proposes a Mail agent (@mail) that triages new mail in
|
|
117
|
+
the background. Accept it with **Create @mail**; until you do, mail is fetched
|
|
118
|
+
and threaded but nobody reads it. Sending always stops at an approval card
|
|
119
|
+
that shows the full message. [docs/specs/email.md](docs/specs/email.md) has
|
|
120
|
+
the rest.
|
|
121
|
+
|
|
122
|
+
**More agents.** Agent Father (@father) makes and changes agents. Say what you
|
|
123
|
+
want one to do; it interviews you, proposes the file and the tools it should
|
|
124
|
+
have, and writes it once you approve.
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## How it works
|
|
129
|
+
|
|
130
|
+
**Agents are files.** One folder per agent, with an `agent.md` in it. The
|
|
131
|
+
front matter says which tools the agent may call; nothing else is callable,
|
|
132
|
+
and no conversation can grant more. The body is the persona, in plain
|
|
133
|
+
markdown. The provider and model are a line in the same file, and the
|
|
134
|
+
dashboard's Agents page edits them for you.
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
---
|
|
138
|
+
id: ledger
|
|
139
|
+
handle: ledger
|
|
140
|
+
name: Ledger
|
|
141
|
+
description: Tracks my accounts and answers "can I afford this?".
|
|
142
|
+
provider: anthropic
|
|
143
|
+
model: claude-sonnet-5
|
|
144
|
+
tools: [finance.*, memory.*, reminder.*]
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
You are my finance advisor. There is exactly one owner: the person you are
|
|
148
|
+
talking to. Today is {{today}}.
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
**Tools and plugins.** The core has no tools; every capability is a plugin.
|
|
152
|
+
Built in: `system`, `email`, `memory`, `artifacts`, `web`, `browser`, `host`,
|
|
153
|
+
`reminder`, `schedule`, `goal`, `learning` and `canvas`. Installable from npm,
|
|
154
|
+
on the Plugins page or with `buddi plugins install`: `finance`, `developer`
|
|
155
|
+
and `image`. Installing a plugin shows everything it brings first: each tool
|
|
156
|
+
and whether it runs without asking, the database schema it will own, what it
|
|
157
|
+
runs on a timer, and the hosts it talks to. Nothing happens until you approve.
|
|
158
|
+
[docs/plugins.md](docs/plugins.md) is the guide to writing one.
|
|
159
|
+
|
|
160
|
+
**Approvals.** Every tool has a tier. Anything that is not safe to run on its
|
|
161
|
+
own, such as sending mail, running a command or acting in a browser, stops the
|
|
162
|
+
run and shows a card with exactly what will happen. You approve or reject it
|
|
163
|
+
on the dashboard or on Telegram. Unknown tools, bad arguments and missing
|
|
164
|
+
configuration never run. [ARCHITECTURE.md](ARCHITECTURE.md) has the model.
|
|
165
|
+
|
|
166
|
+
**Missions and watchers.** A mission is scheduled work. A watcher checks
|
|
167
|
+
something on an interval and produces findings; core decides whether a finding
|
|
168
|
+
is worth waking you for. An unattended run stays quiet unless it has something
|
|
169
|
+
to say, and when background work keeps failing you hear about it once, in
|
|
170
|
+
plain words. Goals add a target with a date: buddi checks it hourly and wakes
|
|
171
|
+
the agent that holds it when you drift ([docs/specs/goals.md](docs/specs/goals.md)).
|
|
172
|
+
|
|
173
|
+
**Groups.** A group is one persistent conversation with a team of agents. A
|
|
174
|
+
coordinator decides who works on each request, and you get one answer.
|
|
175
|
+
[docs/groups.md](docs/groups.md).
|
|
176
|
+
|
|
177
|
+
**Files.** What you send the agents and what they produce sit in one library,
|
|
178
|
+
the Files page, with the conversation each came from.
|
|
179
|
+
[docs/files.md](docs/files.md).
|
|
180
|
+
|
|
181
|
+
**Memory and learning.** Agents keep notes about you, with where each came
|
|
182
|
+
from, scoped per agent. Learning goes one step further: buddi proposes a
|
|
183
|
+
skill, a mail rule or a change to an agent's file, and nothing is kept until
|
|
184
|
+
you keep it. A weekly digest lists what is waiting.
|
|
185
|
+
[docs/specs/learning.md](docs/specs/learning.md).
|
|
186
|
+
|
|
187
|
+
**Owner secrets.** Your passwords, API tokens and one-time codes go in
|
|
188
|
+
Settings → Keys and secrets. An agent can have one filled into a login form,
|
|
189
|
+
typed, or sent as a header, after an approval card that names where it goes.
|
|
190
|
+
There is no way to read a value back, and values are scrubbed from anything an
|
|
191
|
+
agent sees. [docs/specs/owner-secrets.md](docs/specs/owner-secrets.md).
|
|
192
|
+
|
|
193
|
+
**The canvas.** The dashboard opens on a conversation, with a canvas beside
|
|
194
|
+
it. What a run looked at is drawn there: a table, a chart, a document, a web
|
|
195
|
+
page, an approval with its full envelope. It fills in live, and works the same
|
|
196
|
+
for a mission that ran at 6am. [docs/browser.md](docs/browser.md) covers the
|
|
197
|
+
browser views on it.
|
|
198
|
+
|
|
199
|
+
**Claude Code.** `buddi mcp` runs buddi as an MCP server over stdio. Reads
|
|
200
|
+
answer at once; every write becomes an approval card; `buddi.ask` talks to an
|
|
201
|
+
agent. [docs/mcp.md](docs/mcp.md).
|
|
202
|
+
|
|
203
|
+
```sh
|
|
204
|
+
claude mcp add -s user buddi -- buddi mcp
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
---
|
|
208
|
+
|
|
209
|
+
## Where your data lives and what leaves the machine
|
|
210
|
+
|
|
211
|
+
Everything buddi owns sits in one data directory:
|
|
212
|
+
|
|
213
|
+
| Platform | Data directory |
|
|
214
|
+
| --- | --- |
|
|
215
|
+
| macOS | `~/Library/Application Support/buddi` |
|
|
216
|
+
| Linux | `$XDG_DATA_HOME/buddi`, else `~/.local/share/buddi` |
|
|
217
|
+
|
|
218
|
+
`BUDDI_DATA_DIR` moves it. Inside are the Postgres cluster, your agents and
|
|
219
|
+
skills, the files library, logs and backups. Nothing is written outside it
|
|
220
|
+
except the service unit and, on macOS, the keychain entries.
|
|
221
|
+
|
|
222
|
+
**Secrets** go in the vault: the macOS keychain, or the encrypted file vault on
|
|
223
|
+
Linux. No command, page or tool prints one back.
|
|
224
|
+
|
|
225
|
+
**Backups** hold the database, your agents and your files, and never a secret.
|
|
226
|
+
They are encrypted with a six-word passphrase that only you keep. Turn on the
|
|
227
|
+
nightly schedule in Settings → Backup, or with
|
|
228
|
+
`buddi backup schedule install`.
|
|
229
|
+
|
|
230
|
+
**What leaves.** Each agent's conversation, including what its tools returned,
|
|
231
|
+
goes to the provider its file names, and nowhere else. A model is never
|
|
232
|
+
switched for you, and delegating to another agent uses that agent's provider.
|
|
233
|
+
Besides that, buddi makes two kinds of outbound call: a version check against
|
|
234
|
+
the npm registry once a day, which you can turn off in Settings, and a plugin
|
|
235
|
+
install when you ask for one. The dashboard loads nothing from the internet.
|
|
236
|
+
There is no telemetry.
|
|
237
|
+
|
|
238
|
+
[docs/operations.md](docs/operations.md) has the details: what an archive
|
|
239
|
+
contains, the passphrase, restoring, and recovery.
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Everyday commands
|
|
244
|
+
|
|
245
|
+
Most of this is on the dashboard. From a terminal:
|
|
246
|
+
|
|
247
|
+
| Command | What it does |
|
|
248
|
+
| --- | --- |
|
|
249
|
+
| `buddi` | open the dashboard (the first run sets everything up) |
|
|
250
|
+
| `buddi doctor` | check every moving part and say what is wrong |
|
|
251
|
+
| `buddi service status` | is the background service running? `restart`, `logs`, `stop` too |
|
|
252
|
+
| `buddi dashboard` | a five-minute sign-in link to the dashboard |
|
|
253
|
+
| `buddi upgrade` | back up, install the new version, migrate, restart |
|
|
254
|
+
| `buddi backup create --encrypt` | one archive now, sealed with your passphrase |
|
|
255
|
+
| `buddi browser install` | download Chromium for the agents' browser |
|
|
256
|
+
| `buddi agents` | every agent, its engine, and whether it can run |
|
|
257
|
+
| `buddi chat` | talk to the default agent in the terminal |
|
|
258
|
+
| `buddi ask "…"` | one question, one answer, then exit |
|
|
259
|
+
| `buddi telegram pair` | a QR code that pairs a phone |
|
|
260
|
+
| `buddi reminders` | what the agents have put on the clock |
|
|
261
|
+
| `buddi plugins list` | what is installed |
|
|
262
|
+
| `buddi mcp` | buddi as an MCP server, for Claude Code |
|
|
263
|
+
|
|
264
|
+
`buddi help` prints them all. `buddi status` is `buddi doctor` under another
|
|
265
|
+
name.
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## Development
|
|
270
|
+
|
|
271
|
+
The developer checkout runs the same code against a Postgres in Docker. You
|
|
272
|
+
need git, Node 22 or newer, pnpm 11 and Docker.
|
|
273
|
+
|
|
274
|
+
```sh
|
|
275
|
+
git clone https://github.com/withbuddi/buddi && cd buddi
|
|
276
|
+
./scripts/install.sh # checks the tools, then pnpm install, build, link
|
|
277
|
+
buddi init # the terminal wizard: .env, database, service
|
|
278
|
+
pnpm test
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
`./scripts/install.sh` runs `pnpm install`, `pnpm -r build` and
|
|
282
|
+
`pnpm run link`, which puts a global `buddi` on your PATH that points at this
|
|
283
|
+
checkout. `buddi init` is interactive and idempotent; `buddi init --yes` asks
|
|
284
|
+
nothing. It starts the Postgres container, applies migrations, installs the
|
|
285
|
+
service and opens the same wizard in the browser.
|
|
286
|
+
|
|
287
|
+
Commands you will meet in a checkout:
|
|
288
|
+
|
|
289
|
+
```sh
|
|
290
|
+
buddi db up # start the Postgres container after a reboot
|
|
291
|
+
buddi db secure # give it a generated password, kept in the vault
|
|
292
|
+
buddi migrate # apply core and plugin migrations
|
|
293
|
+
buddi serve # the gateway and scheduler in the foreground
|
|
294
|
+
buddi vault set NAME # put a secret in the vault (prompts, hidden)
|
|
295
|
+
buddi plugins dev ../my-plugin
|
|
296
|
+
buddi missions list
|
|
297
|
+
buddi jobs --state failed
|
|
298
|
+
buddi pause # stop claiming work; running jobs finish
|
|
299
|
+
buddi resume # start claiming again
|
|
300
|
+
buddi nudges status
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
To try the packaged install without touching your machine, `pnpm release:trial`
|
|
304
|
+
builds the tarball, puts it in a Docker image and starts it on a fresh volume.
|
|
305
|
+
`pnpm release:pack` builds only the tarball.
|
|
306
|
+
|
|
307
|
+
**Layout.** Under `packages/`:
|
|
308
|
+
|
|
309
|
+
- `core`: domain, database, event log, queue, the tool registry and the plugin
|
|
310
|
+
contract. It never imports a tool.
|
|
311
|
+
- `runtime`: the agent loop and the provider adapters.
|
|
312
|
+
- `gateway`: the surfaces (dashboard server, Telegram, terminal) and the
|
|
313
|
+
scheduler.
|
|
314
|
+
- `web`: the dashboard, React and Vite, built to static files.
|
|
315
|
+
- `cli`: the `buddi` binary for a checkout.
|
|
316
|
+
- `install`: the packaged launcher, the supervisor and the bundled Postgres.
|
|
317
|
+
- `extension`: the Chrome extension for the "Your browser" mode.
|
|
318
|
+
- `tools/*`: the built-in plugins (artifacts, browser, email, host, memory,
|
|
319
|
+
web).
|
|
320
|
+
|
|
321
|
+
The domain plugins (finance, developer, image) live in a separate repository,
|
|
322
|
+
`buddi-plugins`, and install like any other plugin.
|
|
323
|
+
|
|
324
|
+
**CI and releases.** A push to `main` runs the quick lane: four parallel jobs
|
|
325
|
+
(web, gateway, typecheck, the rest), without a database. The full gate, with
|
|
326
|
+
Postgres, runs on pull requests, nightly, on demand and before every release.
|
|
327
|
+
A tag `v<version>` runs the gate, builds the tarball, publishes it to npm
|
|
328
|
+
(pre-release versions under `next`, others under `latest`) and creates the
|
|
329
|
+
GitHub release.
|
|
330
|
+
|
|
331
|
+
Read next: [ARCHITECTURE.md](ARCHITECTURE.md) for the design,
|
|
332
|
+
[docs/plugins.md](docs/plugins.md) to write a plugin,
|
|
333
|
+
[docs/ROADMAP.md](docs/ROADMAP.md) for what is built and what comes next, and
|
|
334
|
+
[docs/README.md](docs/README.md) for the index of everything else.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## Status
|
|
339
|
+
|
|
340
|
+
buddi is a 0.1 pre-release. macOS is the reference platform. Linux works and
|
|
341
|
+
is in trial: the file vault, the bundled Postgres and the systemd user unit
|
|
342
|
+
are built, and fixes land as the trial finds them. Windows is not supported
|
|
343
|
+
yet. Native computer control (operating your own apps) is macOS-only. Signing
|
|
344
|
+
in with a Claude subscription and ChatGPT accounts through Codex are
|
|
345
|
+
experiments, off unless enabled
|
|
346
|
+
([docs/anthropic-oauth.md](docs/anthropic-oauth.md),
|
|
347
|
+
[docs/codex-accounts.md](docs/codex-accounts.md)). Host commands are approved,
|
|
348
|
+
not sandboxed ([docs/host-execution.md](docs/host-execution.md)). Nothing an
|
|
349
|
+
agent says is financial, legal or medical advice.
|
|
350
|
+
|
|
351
|
+
## License
|
|
352
|
+
|
|
353
|
+
License: to be decided before the public release.
|