Skip to content

Commit 99844b6

Browse files
authored
Merge pull request #248 from httpsphl/claude/eloquent-cerf-8400cf
docs: README, signing policy and spec 28 match release 0.14.0
2 parents 62c9467 + 729aa54 commit 99844b6

3 files changed

Lines changed: 79 additions & 32 deletions

File tree

‎README.md‎

Lines changed: 65 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<h1 align="center">Botloft</h1>
66

77
<p align="center">
8-
<b>A crew of AI coding bots that stays on and works together on your computer, on the agent you prefer.</b>
8+
<b>A crew of AI coding bots that stays on and works together on your computer.</b>
99
</p>
1010

1111
<p align="center">
@@ -34,34 +34,60 @@
3434

3535
Botloft keeps a crew of bots running on your computer, each on the AI coding agent you choose:
3636
[Claude Code](https://code.claude.com), or, as experimental options,
37-
[Antigravity](https://antigravity.google) and [Codex](https://developers.openai.com/codex). Each bot has its own folder, memory and conversation. They pass work to each other, keep going after you close the
38-
window and pick up where they left off after a restart. You talk to each one like in a chat app, and
39-
you decide what they may do.
37+
[Antigravity](https://antigravity.google) and [Codex](https://developers.openai.com/codex). Each bot
38+
has its own folder, memory and conversation. They pass work to each other, keep going after you
39+
close the window and pick up where they left off after a restart. You talk to each one like in a
40+
chat app, and you decide what they may do.
41+
42+
The latest release, 0.14.0, runs bots on Claude Code. Antigravity and Codex are on `main` and in no
43+
release yet (see [Agents](#agents)).
4044

4145
## What you can do
4246

4347
- **Start a crew from a goal.** Say what the crew is for. Its Chief plans the work and suggests the
4448
bots it needs; you create each one with a click, or say why not.
49+
- **Pick ready-made bots.** The Bot agency has dozens of bots ready for a job, like a developer, a
50+
designer, a writer, a researcher or customer support. Add one to a crew with a click and change
51+
anything about it afterwards. The Chief uses the same list when it suggests a bot.
4552
- **Chat with every bot.** Replies stream in as they are written. Send images and files. When a bot
4653
wants to run a command, edit a file or open a website, a card asks you first, unless you told that
47-
bot it may.
54+
bot it may. Search every chat with Ctrl+K.
55+
- **Answer their questions.** A bot that needs your decision asks in its chat and in the Questions
56+
box, and goes on with what it can, even in a routine at night. Your answer reaches it as a message
57+
whenever you reply.
4858
- **Let them hand work to each other.** Bots send messages and tasks to each other. Every message is
4959
saved before it is sent and retried until it arrives.
5060
- **Watch them work.** See every page a bot opens in its browser, live, and take control to sign in
5161
for it. Sites that refuse to sign in there, like Google, take one click more: sign in in a real
5262
window of the bot's browser, close it, and the bot keeps the login. Watch the screens it designs
5363
take shape while it writes them. Open the files it made.
64+
- **Let them use your desktop apps (Windows).** A bot can read and use the apps open on your
65+
computer, like a spreadsheet or an old program with no website, but only those you allow. It asks
66+
in the chat, and seeing an app and using it are separate permissions. You watch it live, and
67+
Ctrl+Alt+Esc stops every bot on your desktop. Giving a bot the whole desktop, or letting it work
68+
while you are away, first shows a screen that spells out the risks. Botloft itself, terminals,
69+
password managers and password fields are never shared.
5470
- **Schedule routines.** Weekday mornings, every two hours or any cron schedule, with missed runs
5571
and overlaps handled.
5672
- **Leave them running.** Bots keep working after you close Botloft. They start when you sign in,
5773
come back soon after a crash and keep the computer awake while they work. Botloft
5874
waits near the clock and tells you when a bot needs you.
59-
- **Choose per bot.** Which agent it runs on, which model it uses, and how much it asks before
60-
acting. With Claude Code, see how much of your plan's usage is left.
75+
- **Choose per bot.** Which model it uses and how much it asks before acting. See how much of your
76+
plan's usage is left.
77+
- **Connect your own tools.** Add a tool of yours in Settings > Connected tools, like a LinkedIn
78+
reader or your company's system, and turn it on only for the bots that need it. They still ask you
79+
before using it.
6180
- **Back up and move.** Save a sealed backup file, or sign in with your e-mail (no password) to keep
6281
a light copy in the cloud and restore it on another computer. The server cannot read it. Turn on
6382
automatic copies, every day or week and only when something changed, if you want them to go by
6483
themselves (Windows for now).
84+
- **Keep up from your phone.** Choose "Connect a phone" in Settings > Account and phone and scan the
85+
code with your phone's camera: Botloft opens there as a web page you can add to the Home Screen.
86+
Approve requests, answer questions and chat with your bots from anywhere, with a notice when one
87+
needs you. What passes between the phone and your computer is sealed end to end: the server
88+
carries it but cannot read it. Anyone holding the phone unlocked can do the same, so you can lock
89+
the page with a PIN. It uses the same account; files stay on your computer. Checked on Android,
90+
not yet on iPhone.
6591

6692
<table>
6793
<tr>
@@ -79,6 +105,9 @@ itself.
79105

80106
## Agents
81107

108+
Antigravity and Codex are only on `main` for now: no release has them yet. In a build of `main`,
109+
Claude Code and Antigravity compare like this:
110+
82111
| | Claude Code | Antigravity (experimental) |
83112
|---|---|---|
84113
| Chat, crew messages, tasks, routines, the live browser | yes | chat, crew messages and tasks; the rest is not checked yet |
@@ -97,9 +126,9 @@ checked.
97126

98127
## Get started
99128

100-
You need at least one agent installed and signed in once, with your own account:
101-
[Claude Code](https://code.claude.com/docs/en/setup), Antigravity or Codex
102-
(experimental, see [Agents](#agents)). Bots run on your own plan with that agent.
129+
You need [Claude Code](https://code.claude.com/docs/en/setup), installed and signed in once with
130+
your own account. Bots run on your own plan. (Antigravity and Codex, the experimental agents, are
131+
only on `main` for now; see [Agents](#agents).)
103132

104133
1. Download Botloft for your computer from the
105134
[latest release](https://github.com/httpsphl/botloft/releases/latest):
@@ -140,8 +169,8 @@ flowchart LR
140169
scheduled task of your Windows user, a systemd user service on Linux or a launch agent on macOS:
141170
it starts when you sign in and comes back soon if it dies.
142171
- **Your agent is the runtime.** Each bot is a real session of the agent you chose (`claude -p` for
143-
Claude Code, `agy -p` for Antigravity, `codex app-server` for Codex) with its own workspace, memory and conversation. There is
144-
no custom agent SDK and no API key to manage.
172+
Claude Code; `agy -p` for Antigravity and `codex app-server` for Codex, on `main` only) with its
173+
own workspace, memory and conversation. There is no custom agent SDK and no API key to manage.
145174
- **One conversation per bot.** Your messages, messages from other bots and notices from the daemon
146175
reach the bot in order. What it does comes back as a chat: replies, tool use and requests you
147176
allow or deny.
@@ -154,9 +183,11 @@ The full design, from the protocol to the states of a bot, lives in [`docs/spec.
154183
## Privacy and security
155184

156185
- **Local first.** The daemon listens on `127.0.0.1`, and there is no telemetry. An account is
157-
optional: without one, Botloft uses the network for nothing beyond updates and what bots send to
158-
the agent's provider, which goes through the agent as when you use it yourself. With one, the server only ever
159-
holds a backup sealed with a password that never leaves your computer (see the FAQ).
186+
optional. Without one, Botloft uses the network for nothing beyond updates and your bots' work:
187+
what they send to the agent's provider, which goes through the agent as when you use it yourself,
188+
and the websites and connected tools they use. With one, the server holds only backups sealed with
189+
a password that never leaves your computer, and passes along what a connected phone and your
190+
computer say to each other, sealed end to end (see the FAQ).
160191
- **You decide what bots may do.** Per bot: ask before anything, accept edits, plan only, or decide on
161192
its own what needs your OK. Unless it decides on its own, a bot also asks before its first visit
162193
to each website.
@@ -202,13 +233,16 @@ yours. Botloft's own data (SQLite, logs, secrets) is in `%LOCALAPPDATA%\Botloft`
202233
You sign in with a link sent to your e-mail; there is no account password. The cloud copy is the
203234
light one: your crews' structure, the bots' memory and the routines, not the chats or files. Botloft
204235
seals it on your computer with the backup password before sending, so the server stores bytes it
205-
cannot open. It also knows your e-mail, the computers you signed in on, and the size and date of each
206-
copy. Lose the backup password and the cloud copies cannot be recovered. Nothing is sent unless you
207-
send it or turn on automatic copies. Those go every day or week, only when something changed; for
208-
them Windows keeps your backup password in its credential store, on this computer only, so use a
209-
password just for this. You can delete the copies or the whole account from the app. The server is this
210-
repository's `botloft-cloud` crate: you can [run your own](docs/cloud-deploy.md) and point the app at
211-
it.
236+
cannot open. It also knows your e-mail, the computers you signed in on, the phones you connected
237+
(and, if you turn on notices, where to send them), and the size and date of each copy. Lose the
238+
backup password and the cloud copies cannot be recovered. Nothing is sent unless you send it, turn
239+
on automatic copies or connect a phone. Automatic copies go every day or week, only when something
240+
changed; for them Windows keeps your backup password in its credential store, on this computer
241+
only, so use a password just for this. A connected phone talks to your computer through the server,
242+
sealed end to end with keys only the two of them have: the server sees when and how much passes,
243+
never what, and the notices it sends the phone are empty. You can delete the copies or the whole
244+
account from the app, and disconnect a phone at any time. The server is this repository's
245+
`botloft-cloud` crate: you can [run your own](docs/cloud-deploy.md) and point the app at it.
212246
</details>
213247

214248
<details>
@@ -233,16 +267,19 @@ Windows came first and has had the most use; if something does not work elsewher
233267
<details>
234268
<summary><b>Is Botloft made by Anthropic?</b></summary>
235269

236-
No. Botloft is an independent project. It uses Claude Code, Antigravity and Codex as installed on your
237-
computer and is not affiliated with or endorsed by Anthropic, Google or OpenAI.
270+
No. Botloft is an independent project. It uses Claude Code (and, on `main`, Antigravity and Codex)
271+
as installed on your computer and is not affiliated with or endorsed by Anthropic, Google or OpenAI.
238272
</details>
239273

240274
## Status
241275

242-
Botloft is young (version 0.x) and moves fast. The daemon, the chat, crews with a Chief, messages
243-
and tasks between bots, routines, the live browser, screens, "always allow" for requests, the
244-
installer and updates are in place. Planned next: a question box where bots ask you things, search,
245-
and a code-signed installer. `main` can be ahead of the latest release.
276+
Botloft is young (version 0.x) and moves fast. The latest release, 0.14.0 (2026-10-08), has bots
277+
that keep running in the background, the chat, crews with a Chief, ready-made bots in the Bot
278+
agency, messages and tasks between bots, routines, the live browser, screens, "always allow" for
279+
requests, questions from bots, chat search, desktop use on Windows, connected tools, backups with an
280+
optional cloud copy, the phone page, the installer and updates. Still open: a code-signed installer.
281+
`main` is ahead of the latest release; among other things, it has Antigravity and Codex as
282+
experimental agents.
246283

247284
<details>
248285
<summary><b>Development</b></summary>

‎docs/code-signing-policy.md‎

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,12 +57,22 @@ listens on `127.0.0.1` only. What goes over the network:
5757
information about you or your bots is sent.
5858
- **Your bots.** Each bot is Claude Code running on your computer with your own Claude account. What
5959
it sends to Anthropic, and the websites it opens when its work needs them, are the same as when
60-
you use Claude Code yourself.
60+
you use Claude Code yourself. So is what it sends to a tool you connect and turn on for it
61+
(Settings > Connected tools); a tool at an address is outside your computer.
6162
- **The optional cloud account.** Only if you sign in, and only when you send a copy or turn on automatic copies (every day or week, and only when something changed). The server gets your
6263
e-mail address, the name of your computer, and the light backup you choose to upload: it is sealed
6364
on your computer with the backup password, which never leaves it, so the server cannot read it. For automatic copies Windows keeps that password in its credential store, readable only by your user account.
6465
Signing out, deleting a copy or deleting the account is in the app. The server is the
6566
`botloft-cloud` crate in this repository, and the address is a setting, so you can run your own.
67+
- **A connected phone.** Only if you connect one (Settings > Account and phone), which needs the
68+
account. While a phone is connected, or you are connecting one, the background service keeps one
69+
outgoing connection to the server, which carries what the phone and the computer say to each
70+
other: requests, questions, answers and the bots' chats. It is sealed end to end with keys only
71+
the two of them have, so the server sees when and how much passes, never what. The server keeps
72+
the phone's name and, if you turn on notices on the phone, the address its browser gave for them.
73+
Each notice is empty and goes through that browser's push service, which learns only that a
74+
notice arrived. Disconnecting the phone, from the computer or from the phone itself, cuts it off
75+
at once, and signing out of the account disconnects every phone.
6676

6777
## What Botloft changes on your computer
6878

‎docs/spec.md‎

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2353,7 +2353,7 @@ Testes: `crates/botloft-store` (a impressão digital muda com o que o dono faz e
23532353

23542354
## 28. Celular
23552355

2356-
Status: **CE1 (spec).** Vem depois de 27 e usa a conta dela. É o "celular" que 27.9 deixou para depois.
2356+
Status: **CE1 a CE6 implementados**, no 0.14.0. Do CE7 (teste real), o que já se viu e o que falta está em "A verificar" (28.10). Vem depois de 27 e usa a conta dela. É o "celular" que 27.9 deixou para depois.
23572357

23582358
### 28.1 O que é
23592359

@@ -2520,7 +2520,7 @@ Arquivos e anexos, tarefas e rotinas no celular (conversa, só de texto, está e
25202520

25212521
### 28.12 Conversas
25222522

2523-
Status: **CH3 (PWA feito)**. O celular, que só aprovava e respondia (28.1), passa a **ler as conversas dos bots e a mandar texto a eles**. O que ele continua sem fazer: anexos e arquivos (ver, mandar ou abrir), telas e navegador do bot, tarefas, rotinas, reações, busca, e qualquer configuração.
2523+
Status: **CH1 a CH3 feitos**, no 0.14.0; o CH4 foi visto no Android e falta o iPhone. O celular, que só aprovava e respondia (28.1), passa a **ler as conversas dos bots e a mandar texto a eles**. O que ele continua sem fazer: anexos e arquivos (ver, mandar ou abrir), telas e navegador do bot, tarefas, rotinas, reações, busca, e qualquer configuração.
25242524

25252525
**O que muda na privacidade (28.9).** Até aqui só passavam pedidos e perguntas. Agora passa **o texto das conversas**, e continua selado de ponta a ponta: o servidor não o lê. Ele vê um pouco mais do ritmo (mais mensagens, de tamanhos variados, quando alguém conversa), mas nada do que se diz. E um celular desbloqueado e conectado passa a **ler o histórico dos bots e a falar com eles**: por isso o aviso do app (28.7) diz isso também, e a regra abaixo protege o que há de pior.
25262526

@@ -2563,7 +2563,7 @@ Status: **CH3 (PWA feito)**. O celular, que só aprovava e respondia (28.1), pas
25632563

25642564
### 28.13 Trava com PIN
25652565

2566-
Status: **LK1 (spec)**. Um celular desbloqueado e conectado aprova pedidos (28.5) e, com as conversas (28.12), lê e fala com os bots: quem o segurar faz o que o dono faria. A trava é um **PIN do próprio app**, que o dono **liga se quiser**. O app **não obriga**: explica o motivo e deixa a decisão com o dono.
2566+
Status: **LK1 e LK2 feitos**, no 0.14.0 (o que já foi visto e o que falta, no fim desta seção). Um celular desbloqueado e conectado aprova pedidos (28.5) e, com as conversas (28.12), lê e fala com os bots: quem o segurar faz o que o dono faria. A trava é um **PIN do próprio app**, que o dono **liga se quiser**. O app **não obriga**: explica o motivo e deixa a decisão com o dono.
25672567

25682568
**O que o app diz, em palavras do dia a dia.** Na tela do celular (28.7): "Com um PIN, quem pegar este celular desbloqueado não consegue ler suas conversas nem aprovar pedidos. Sem ele, o celular fica aberto para quem o segurar." Depois de conectar, e enquanto não houver PIN, a caixa mostra um aviso curto com o mesmo motivo, **"Proteger com um PIN"** e **"Agora não"** (o "agora não" é lembrado no aparelho e o aviso não volta; o PIN segue em "Este celular").
25692569

0 commit comments

Comments
 (0)