55<h1 align =" center " >Botloft</h1 >
66
77<p align =" center " >
8- <b >A crew of Claude Code bots that stays on and works together on your Windows PC .</b >
8+ <b >A crew of Claude Code bots that stays on and works together on your computer .</b >
99</p >
1010
1111<p align =" center " >
1212 <a href =" https://github.com/httpsphl/botloft/releases/latest " ><img src =" https://img.shields.io/github/v/release/httpsphl/botloft?label=release&color=ff7a59 " alt =" Latest release " ></a >
1313 <a href =" https://github.com/httpsphl/botloft/actions/workflows/ci.yml " ><img src =" https://img.shields.io/github/actions/workflow/status/httpsphl/botloft/ci.yml?branch=main&label=CI " alt =" CI status " ></a >
14- <img src =" https://img.shields.io/badge/Windows-10 %20%7C%2011 -0078d4 " alt =" Windows 10 and 11 " >
14+ <img src =" https://img.shields.io/badge/Windows%20%7C%20Linux%20%7C%20macOS -0078d4 " alt =" Windows, Linux and macOS " >
1515 <a href =" LICENSE " ><img src =" https://img.shields.io/github/license/httpsphl/botloft?color=3b3b38 " alt =" Apache 2.0 license " ></a >
1616</p >
1717
1818<p align =" center " >
19- <a href =" https://github.com/httpsphl/botloft/releases/latest " ><b >Download for Windows </b ></a >
19+ <a href =" https://github.com/httpsphl/botloft/releases/latest " ><b >Download</b ></a >
2020   ; ·  ;
2121 <a href =" #what-you-can-do " >Features</a >
2222   ; ·  ;
@@ -48,9 +48,9 @@ you decide what they may do.
4848 for it. Watch the screens it designs take shape while it writes them. Open the files it made.
4949- ** Schedule routines.** Weekday mornings, every two hours or any cron schedule, with missed runs
5050 and overlaps handled.
51- - ** Leave them running.** Bots keep working after you close Botloft. They start with Windows, come
52- back within a minute if something crashes and keep the PC awake while they work. Botloft waits
53- near the clock and tells you when a bot needs you.
51+ - ** Leave them running.** Bots keep working after you close Botloft. They start when you sign in,
52+ come back soon after a crash and, on Windows, keep the computer awake while they work. Botloft
53+ waits near the clock and tells you when a bot needs you.
5454- ** Choose per bot.** How much it asks before acting, and which Claude model it uses. See how much
5555 of your plan's usage is left.
5656
@@ -70,21 +70,33 @@ itself.
7070
7171## Get started
7272
73- You need Windows 10 or 11 (64-bit) and [ Claude Code] ( https://code.claude.com/docs/en/setup ) ,
74- installed and signed in once with your Claude account. Bots run on your own Claude plan.
75-
76- 1 . Download ` Botloft_<version>_x64-setup.exe ` from the
77- [ latest release] ( https://github.com/httpsphl/botloft/releases/latest ) and run it. It installs for
78- your Windows user only, with no administrator prompt. The installer is not code-signed yet, so
79- Windows SmartScreen may ask you to confirm ("More info", then "Run anyway"). The
80- [ code signing policy] ( docs/code-signing-policy.md ) says how releases are made and how to check
81- your download.
73+ You need [ Claude Code] ( https://code.claude.com/docs/en/setup ) , installed and signed in once with
74+ your Claude account. Bots run on your own Claude plan.
75+
76+ 1 . Download Botloft for your computer from the
77+ [ latest release] ( https://github.com/httpsphl/botloft/releases/latest ) :
78+ - ** Windows 10 or 11 (64-bit):** ` Botloft_<version>_x64-setup.exe ` . Run it; it installs for your
79+ Windows user only, with no administrator prompt. The installer is not code-signed yet, so
80+ Windows SmartScreen may ask you to confirm ("More info", then "Run anyway").
81+ - ** Linux (64-bit, preview):** ` Botloft_<version>_amd64.deb ` for Debian and Ubuntu, or
82+ ` Botloft_<version>_amd64.AppImage ` for other distributions (make it executable first).
83+ - ** macOS on Apple Silicon (preview):** ` Botloft_<version>_aarch64.dmg ` . Drag Botloft to
84+ Applications and open it once. Apple has not notarized it yet, so macOS blocks it the first
85+ time: allow it in System Settings > Privacy & Security > Open Anyway.
86+
87+ The [ code signing policy] ( docs/code-signing-policy.md ) says how releases are made and how to
88+ check your download.
82892 . Open Botloft. It sets itself up; there is nothing to configure.
83903 . Create your first crew and tell it what it is for.
8491
85- When a new version is out, an ** Update available** button shows in the title bar. Uninstalling
86- (Settings > Apps) removes the app and stops Botloft from running in the background. Your bots and
87- their files stay in ` %LOCALAPPDATA%\Botloft ` and ` %USERPROFILE%\Botloft ` .
92+ When a new version is out, an ** Update available** button shows in the title bar.
93+
94+ On Windows, uninstalling (Settings > Apps) removes the app and stops Botloft from running in the
95+ background. On Linux and macOS, stop it first with
96+ ` ~/.local/share/Botloft/bin/botloftd service uninstall ` (Linux) or
97+ ` ~/"Library/Application Support/Botloft/bin/botloftd" service uninstall ` (macOS), then remove the
98+ app. Your bots and their files stay either way (see
99+ [ Where are my bots and their files?] ( #faq ) ).
88100
89101## How it works
90102
@@ -97,8 +109,8 @@ flowchart LR
97109```
98110
99111- ** The daemon is the source of truth.** Closing the app never stops a bot. ` botloftd ` runs as a
100- scheduled task of your Windows user: it starts when you sign in and comes back within a minute if
101- it dies.
112+ scheduled task of your Windows user, a systemd user service on Linux or a launch agent on macOS:
113+ it starts when you sign in and comes back soon if it dies.
102114- ** Claude Code is the runtime.** Each bot is a real ` claude -p ` session with its own workspace,
103115 memory (` CLAUDE.md ` ) and conversation. There is no custom agent SDK and no API key to manage.
104116- ** One conversation per bot.** Your messages, messages from other bots and notices from the daemon
@@ -117,9 +129,9 @@ The full design, from the protocol to the states of a bot, lives in [`docs/spec.
117129- ** You decide what bots may do.** Per bot: ask before anything, accept edits, plan only, or decide on
118130 its own what needs your OK. Unless it decides on its own, a bot also asks before its first visit
119131 to each website.
120- - ** Tokens stay safe.** The app authenticates with an owner token readable only by your Windows user.
132+ - ** Tokens stay safe.** The app authenticates with an owner token readable only by your user account .
121133 Each bot gets its own token per start, and the daemon keeps only its SHA-256 hash.
122- - ** Botloft is not a sandbox.** Every bot runs as your Windows user, so isolation between bots is
134+ - ** Botloft is not a sandbox.** Every bot runs as your user account , so isolation between bots is
123135 cooperative: a bot can read other bots' folders if it decides to. Give bots only the permissions
124136 you would give Claude Code directly.
125137
@@ -138,22 +150,25 @@ your own Claude account, so they use your plan's limits; Botloft shows how much
138150<details >
139151<summary ><b >Do I need to keep the window open?</b ></summary >
140152
141- No. The bots run in the background, even after you close Botloft, and start with Windows if you want.
153+ No. The bots run in the background, even after you close Botloft, and start when you sign in if you
154+ want.
142155Settings has a switch to stop them when you close the app instead.
143156</details >
144157
145158<details >
146159<summary ><b >Where are my bots and their files?</b ></summary >
147160
148- Each bot has a folder under ` %USERPROFILE%\Botloft\<crew>\<bot> ` , and each crew a shared work folder
149- that you can point at a project of yours. Botloft's own data (SQLite, logs, secrets) is in
150- ` %LOCALAPPDATA%\Botloft ` .
161+ Each bot has a folder under ` Botloft\<crew>\<bot> ` in your home folder (` %USERPROFILE% ` on Windows,
162+ ` ~ ` on Linux and macOS), and each crew a shared work folder that you can point at a project of
163+ yours. Botloft's own data (SQLite, logs, secrets) is in ` %LOCALAPPDATA%\Botloft ` on Windows,
164+ ` ~/.local/share/Botloft ` on Linux and ` ~/Library/Application Support/Botloft ` on macOS.
151165</details >
152166
153167<details >
154- <summary ><b >Why does Windows warn me when I install it?</b ></summary >
168+ <summary ><b >Why does Windows or macOS warn me when I install it?</b ></summary >
155169
156- The installer is not code-signed yet, so SmartScreen does not know its publisher. Each release is
170+ The Windows installer is not code-signed yet, so SmartScreen does not know its publisher, and Apple
171+ has not notarized the macOS app, so Gatekeeper blocks its first opening until you allow it. Each release is
157172built by GitHub Actions from this repository, and updates are signed and checked by the app before
158173they install. The [ code signing policy] ( docs/code-signing-policy.md ) says how releases are made and
159174how to check a download.
@@ -162,7 +177,10 @@ how to check a download.
162177<details >
163178<summary ><b >Does it run on macOS or Linux?</b ></summary >
164179
165- Not yet. Botloft is Windows-first: it uses scheduled tasks, Job Objects and Windows notifications.
180+ Yes, as a preview since 0.8.0: Linux (64-bit, ` .deb ` or AppImage) and macOS on Apple Silicon. Intel
181+ Macs are not supported yet, and keeping the computer awake while bots work is Windows-only for now.
182+ Windows came first and has had the most use; if something does not work elsewhere, please
183+ [ open an issue] ( https://github.com/httpsphl/botloft/issues ) .
166184</details >
167185
168186<details >
@@ -182,8 +200,10 @@ code-signed installer. `main` can be ahead of the latest release.
182200<details >
183201<summary ><b >Development</b ></summary >
184202
185- Requirements: Windows 10 or 11, Rust stable (MSVC toolchain), Node.js 24 and pnpm. Running real
186- bots also needs Claude Code (the native ` claude.exe ` ) installed and signed in.
203+ Requirements: Rust stable (the MSVC toolchain on Windows), Node.js 24 and pnpm. On Linux, the app
204+ also needs the desktop libraries Tauri uses (on Ubuntu: ` libwebkit2gtk-4.1-dev ` ,
205+ ` libayatana-appindicator3-dev ` , ` librsvg2-dev ` , ` libxdo-dev ` ). Running real bots also needs Claude
206+ Code (the native ` claude ` executable) installed and signed in.
187207
188208``` powershell
189209# Daemon and libraries
@@ -198,13 +218,14 @@ pnpm install
198218pnpm tauri dev
199219pnpm dev # the UI alone in a browser, with a fake daemon and sample crews
200220pnpm check # typecheck + Biome + Vitest
201- pnpm bundle # NSIS installer with the daemon inside
221+ pnpm bundle # this system's packages with the daemon inside: NSIS, .deb and AppImage, or .dmg
202222```
203223
204224Set ` BOTLOFT_HOME ` to an absolute path such as ` $PWD\.dev\home ` during development so the daemon
205225never touches a real installation in ` %LOCALAPPDATA%\Botloft ` .
206226
207- The daemon manages its own scheduled task:
227+ The daemon manages its own scheduled task (a systemd user service on Linux, a launch agent on
228+ macOS):
208229
209230``` powershell
210231botloftd service install # copy botloftd into the data folder, start it now and at every logon
0 commit comments