Skip to main content
The Quickstart covers One Local Setup on a single machine. For everything else, stay on this page.

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) on x86_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:
If DNS doesn’t resolve, the reverse proxy in Configure HTTPS cannot issue a TLS certificate and the web UI won’t load.
2

Update system packages

On the VPS:
3

Create a dedicated user (recommended)

Don’t run the server as root. Give it its own home so Bun and the ~/.taskmanager/ profiles stay isolated.
Your prompt should now be 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 taskmanager user:
Add Bun to your shell’s PATH:
Verify Bun is installed:
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 on 127.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.

D - Initialize the server

1

Run the setup wizard

As the taskmanager user:
Answer the prompts:
The wizard prints the tmk-… CLI API key once. You will need it for your client profile later.
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

Verify the connection:
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

The journal should show the server bound to 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 on 127.0.0.1 but the CLI must still present a key.
Because the wizard ran 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
The 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:
That way, the default-profile pointer set by your installed hirotaskmanager is unaffected.