Install on a Mac or Linux machine
Requirements
Node 22.6 or newer with npm, and git. On a Mac with Homebrew, brew install node gives you Node; otherwise download it from nodejs.org. The installer prints the exact command for your system when something is missing.
A model key, or a model on your own machine, is asked for later, in the Start room.
Install
Run this in a terminal:
curl -fsSL https://clawco.work/install.sh | bashThe installer's messages are in Danish for now.
What the installer does
- Checks the system: Node 22.6 or newer, npm and git.
- Downloads the code with git into the app folder, or updates it if it is already there.
- Installs the dependencies with npm ci --omit=dev.
- Creates your user folder and a settings file that only you can read, unless they already exist.
- Installs a background service: a launchd agent on a Mac, a systemd user service on Linux.
- Waits for Clawco to answer on its health address and prints where to open it.
Where things live
~/.clawco/appthe code. It is replaced on update.~/.clawco/datayour user folder, with your data. Never inside the code folder.~/.clawco/.envyour settings. Never overwritten.~/.clawco/logthe service log.
Set CLAWCO_HOME before you run the installer to use another place.
Back up and restore
One command saves everything Clawco knows about you as a single file with the date in its name, in ~/Clawco-backups. Run it in the app folder:
cd ~/.clawco/app && npm run backup
The file can be read by you only. It holds your user folder, and your notes folder when it is on this machine. A notes folder on a network drive is not included, because it already lives elsewhere; add --med-vault to include it. Keys and passwords are left out; add --med-noegler to include them, and the file is then a secret itself.
To restore on this or another machine, install Clawco, stop it, and give the file to the restore command. It refuses to write into a folder that already holds files. With --erstat it first moves the old folder to the side, next to it, under a name that ends in .foer-gendannelse and the date. Nothing is deleted. It then prints how many rooms and notes came back. Start Clawco again afterwards.
npm run restore -- ~/Clawco-backups/clawco-backup-2026-11-02-0930.tar.gz --erstat
Old backups are never removed for you. To prune by hand, look at the list and delete the files you no longer need:
ls -l ~/Clawco-backups
rm ~/Clawco-backups/clawco-backup-2026-11-02-0930.tar.gz
Options
Pass options after bash -s --, for example to see the plan without changing anything:
curl -fsSL https://clawco.work/install.sh | bash -s -- --dry-run
--dry-runshows the plan and changes nothing--yesasks no questions and uses the defaults--no-serviceinstalls no background service--port Nthe port Clawco listens on--data-dir DIRwhere your data lives--laptopinstalls for one person on this machine only: Clawco listens on 127.0.0.1, with no sign-in, and Tailscale is not needed
Laptop mode
Use laptop mode when Clawco is for you alone on your own laptop, with no server and no Tailscale. Add --laptop to the install command:
curl -fsSL https://clawco.work/install.sh | bash -s -- --laptop
Clawco then listens on this machine only (127.0.0.1), so nobody else on the same Wi-Fi can open it. It opens straight away as you, with no sign-in and no household questions, starts when you log in, and is restarted if it stops. If the installer finds no Tailscale, it suggests laptop mode and asks you to confirm; with --yes it never turns it on by itself.
Your phone: without Tailscale, the phone cannot reach Clawco. With Tailscale on the laptop and on the phone it can, but only while the laptop is awake. Keeping the laptop awake, for example with caffeinate on a Mac or in the power settings, is your choice; Clawco never does it silently. Clawco treats everything that reaches it through Tailscale as you, so share it only on a Tailscale network that is yours alone.
To leave laptop mode, remove the line KC_LAPTOP=ja from ~/.clawco/.env and restart Clawco.
Update
Run the install command again. The code is fast-forwarded; your settings file and your data are never overwritten.
Remove
Stop and remove the background service.
On a Mac:
launchctl bootout gui/$(id -u)/work.clawco && rm ~/Library/LaunchAgents/work.clawco.plist
On Linux:
systemctl --user disable --now clawco && rm ~/.config/systemd/user/clawco.service && systemctl --user daemon-reload
Then delete the code and the log. Your data and settings stay until you delete them yourself.
rm -rf ~/.clawco/app ~/.clawco/log
To remove everything, your data too: copy ~/.clawco/data to another folder first if you want to keep it, then run:
rm -rf ~/.clawco