Concepts you need first
Credentials
A CLI API key authenticates as the CLI principal only. It can never be used to log into the web UI, change CLI access policy, or manage other API keys. See CLI access policy.
Server/Client setup
Deploy the API server on a VPS behind HTTPS, then point your laptop’s CLI at it. The instructions below target a Debian 11+ VPS (e.g. a Google Cloud VM) onx86_64; adapt package commands for other distros.
A - Prerequisites
1
Point a hostname at the VPS
Create a public DNS A record (e.g.
hirotm.example.com) pointing to the VPS’s public IP, then confirm from your laptop:2
Update system packages
On the VPS:
3
Create a dedicated user (recommended)
Don’t run the server as Your prompt should now be
root. Give it its own home so Bun and the ~/.taskmanager/ profiles stay isolated.taskmanager@<hostname>:~$. Run every command in the next two sections as this user unless the snippet starts with sudo.B - Install Task Manager
1
Install Bun
As the Add Bun to your shell’s PATH:Verify Bun is installed:
taskmanager user:You can use npm instead of Bun, but Bun is recommended for cold-start performance.
2
Install the hirotaskmanager package
C - Configure HTTPS
The Task Manager API listens on127.0.0.1:3001 (or the port you specified in the setup wizard). The public internet only needs SSH, HTTP, and HTTPS — a reverse proxy terminates TLS and forwards to the loopback port.
1
Restrict the firewall to 80/443
2
Install a TLS reverse proxy
Pick an option below or use your own.
Replace
hirotm.example.com with the hostname you specified in the prerequisites. Replace 3001 with the port you intend to use in the setup wizard.- Caddy (recommended)
- nginx
Minimal config, automatic certificates out of the box.Write the site config:Watch the first reload to confirm the cert was issued, then Look for
Ctrl+C:certificate obtained successfully.D - Initialize the server
1
Run the setup wizard
As the Answer the prompts:
taskmanager user:2
Open the first-time setup link
The setup wizard prints a deep-link of the form
https://127.0.0.1:3001/?setupToken=<token>. replace ip:port with your hostname and paste it into your client browser- Pick a passphrase for the web UI.
- Back to the server terminal and save the recovery key in a safe place, not on your client machine.
- Log in with your passphrase.
The setup token is single-use. Once a passphrase is created the token is destroyed
3
Confirm the server is healthy
From the VPS:The status command should report
"running": true with "api_url": "http://127.0.0.1:3001", and the curl should return 200.E - Connect a CLI client
Run these on your laptop, not the VPS.1
Install hirotaskmanager locally
2
Run the client setup wizard
3
Install Skills
Install Hiro Task Manager skills on your client machine - This is where your AI agents will run.
Run Server as a service
This is optional, but useful if you are using Hiro Task Manager frequently. If you need your hirotaskmanager server to survive a system reboot or a failure, you can run it as a service. Instructions may vary depending on your *nix distro.1
Stop the hirotaskmanager server
As your taskmanager user
sudo -iu taskmanager:2
Create the systemd unit
As your sudo user
3
Enable and start the service
127.0.0.1:3001. Press Ctrl+C to stop tailing.Hardening local setup
Useful on shared workstations or production parity testing on one machine: the server stays on127.0.0.1 but the CLI must still present a key.
server api-key generate --save-to-profile, the freshly minted key is written into the same profile’s api_key field. The local CLI authenticates immediately, with no extra prompts.
Other local users on the same machine cannot reach the API just by connecting to 127.0.0.1:3001 — they need a valid key.
Wizard Options Explained
Common Profile config errors
Errors related to profile configuration manual edits.Hiro Developers Only
Working on the Task Manager source, you typically want a dev profile that uses--dev (port 3002, dev CORS, no built dist/) without overwriting your installed default profile.
Run a dev profile
dev profile is a regular profile name with no special meaning — it just keeps your dev work in ~/.taskmanager/profiles/dev/ so it can’t collide with an installed main profile.
--profile dev in commands
The repo’s AGENTS.md instructs agents and humans to use --profile dev for every command in the source tree:
hirotaskmanager is unaffected.
Related
- Quickstart — same-machine path.
- Profiles — schema, roles, default-profile pointer.
- Server operations —
server start/stop/statusandserver api-key …. - CLI access policy — what the CLI principal can and cannot do.
- Errors & exit codes —
auth_cli_key_required,invalid_config, and friends.
