slopper
Run Folio agent sessions — Claude Code or Codex — on your own machine.
slopper is the environment a Folio session runs in. It registers with your
Folio server, picks up the sessions assigned to it, checks out the project's
repositories into a workspace per session, and runs the agent there. Every
tool call that needs your approval shows up in the session in Folio; the
agent waits until you answer.
Runs on macOS and Linux, Python 3.11+. Both agent CLIs are installed with the package.
Install
uv tool install slopper # or: pipx install slopper
Set up
-
Sign the agents in, once per machine, as the user the service will run as:
claude login # Claude Code codex login # Codex (optional)
-
Point it at Folio with an API key from Folio's settings:
slopper configure --server https://api.folio.example.com --token <api-key>
This writes
~/.slopper/config.toml, readable only by you. -
Check everything:
slopper doctor -
Run it as a service — started now, at every login, and again if it crashes:
slopper service install
- macOS: a LaunchAgent (
~/Library/LaunchAgents/slopper.plist) in your login session, so it can use the Claude login in your Keychain. Logs:~/Library/Logs/slopper/slopper.log. - Linux: a systemd user unit (
~/.config/systemd/user/slopper.service). Logs:journalctl --user -u slopper. To keep it running while you are logged out (a headless machine):sudo loginctl enable-linger $USER.
- macOS: a LaunchAgent (
Commands
| Command | |
|---|---|
slopper configure |
Write ~/.slopper/config.toml (--server, --token, --env-id, --workspace) |
slopper doctor |
Check the config, the server, the key, git, and both agents' logins |
slopper service install · uninstall |
Install or remove the service |
slopper service start · stop · restart · status |
Control it |
slopper service logs [-f] |
Show (or follow) its log |
slopper run |
Run in the foreground instead of as a service |
Only one environment runs per user account; a second slopper run refuses to
start while the service is running.
Upgrade
uv tool upgrade slopper && slopper service restart
The service runs the installed interpreter by path, so it picks up the new version on restart — there is nothing to reinstall.
Configuration
~/.slopper/config.toml holds the settings; environment variables of the
same name override it.
| Setting | Default | |
|---|---|---|
SLOPPER_SERVER_URL |
http://localhost:8000 |
Folio API |
SLOPPER_TOKEN |
— | API key this environment registers with |
SLOPPER_ENV_ID |
generated once, kept in ~/.slopper/identity.toml |
This machine's name in Folio. Must stay stable: sessions are bound to it |
SLOPPER_WORKSPACE_ROOT |
~/.slopper/workspaces |
One directory per session |
SLOPPER_CLONE_SINCE |
1.month.ago |
How much git history a checkout carries; empty for all |
SLOPPER_CODEX_BIN |
the bundled one | A different codex binary |
Metadata
Release files for slopper 0.1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| slopper-0.1.4.tar.gz | 105.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| slopper-0.1.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 192.8 kB
Release files / slopper-0.1.4.tar.gz
| Download URL | slopper-0.1.4.tar.gz |
|---|---|
| Size | 105.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4dfe79fe1f6f39b3831fc3a7b7a6607886c65fdb3432e978579022259ce62cb0
|
|
BLAKE2b-256 checksum How to use checksums |
00be067aad8deafda89e50d5c31cc28e9538d8cca8a2b69002b71c1a8c04d41b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.4
|
Release files / slopper-0.1.4-py3-none-any.whl
| Download URL | slopper-0.1.4-py3-none-any.whl |
|---|---|
| Size | 87.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fa2eadf045cb0a8e4b7b35be8a5d386fc46de63a292fe7805f075ab648ef8e5e
|
|
BLAKE2b-256 checksum How to use checksums |
24b1d1627b7aceed0ec74880852076456f845ca354668bf6a7658f3b3d661a4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.4
|