hirotaskmanager or hirotm CLI commands, you can start, stop or check Hiro Task Manager Server status. While both commands are available, AI Agents are usually encouraged to use hirotm for everything.
server start/stop only act on server-role profiles. Running them against a client-role profile (one with api_url pointing at a remote server) errors with code: invalid_args — there is no local server to start. server status reports reachability for the active profile.
hirotm server start
Starts the local API if it is not already healthy on that port. By default, the process detaches and hirotm prints JSON on success. Use --foreground when you want startup logs to stay attached to the terminal.
CLI Examples
Start Task Manager in the background on a named profile so API commands work.
--foreground, the command waits until the API is healthy, then keeps running and forwards SIGINT / SIGTERM to the server. Use this when you want startup errors and logs in the terminal. If the API is already up on that port, the command returns immediately without spawning another process (no JSON line in that case).
hirotm server stop
Stops a background server that hirotm server start recorded in the CLI pid file for this profile. It does not stop arbitrary processes on the port; if there is no pid file, the command fails with guidance.
CLI Examples
hirotm server status
Checks whether the Task Manager API responds for the active profile. Prints one flat JSON object to stdout.
CLI Examples
Check if Task Manager is running on a named profile.
server status returns a flat CLI status object. Top-level fields describe the active profile connection. Fields prefixed with server_ come from the server health payload.
Learn more
Runhirotm help server, hirotm help server start, hirotm help server stop, or hirotm help server status for the exact flags your installed CLI exposes.
Installed App Shortcuts
If you specifically want the installed package entry instead of whateverhirotm resolves to on PATH, use hirotaskmanager.
The installed launcher exposes:
server startstarts in the background by default and prints concise human progress text.server stopprints concise human progress text such as “Stopping Server” and “Server stopped”.server statusprints the same flat JSON status shape ashirotm server status.
hirotaskmanager server status returns the same flat status JSON shape as hirotm server status.
Example:
hirotaskmanager help server, hirotaskmanager help server status, or hirotaskmanager help server stop to see those launcher commands.
Managing CLI API keys
While Server setup usually helps you generate a CLI key, there are some cases where you might need to generate a new key, or revoke an existing key. This set ofhirotaskmanager commands help generate, list and revoke CLI API keys. Learn more about CLI API keys in Concepts and Advanced setup.
Notes
- These commands should run on the server side, not the client side, unless it is a local setup.
- Keys are stored in the server profile’s auth directory.
- They do not require the HTTP server to be running.
- They only run against server profiles.
Key Generation
hirotaskmanager server api-key generate
Generates a random 32-byte key, formats it as tmk-<64 hex chars>, stores its hash in cli-api-keys.json, and prints the raw key.
Examples
--format ndjson)
Key Listing
hirotaskmanager server api-key list
Lists all issued keys for the active server profile. Shows id (the first ~8 hex chars), label, and createdAt. Never shows the full key or its hash.
Key Revocation
hirotaskmanager server api-key revoke <id-prefix>
Removes the matching key entry from cli-api-keys.json. Match by the id prefix shown by list:
code: auth_invalid_cli_key.
Key usage on the client
The raw key is stored in the client-side profile’sconfig.json as api_key:
- For a client profile (the typical remote case): paste it during
hirotaskmanager --setup-client, or edit the file by hand. - For a server profile that has
require_cli_api_key: true(the hardened single-host case): use--save-to-profileongenerateso the local CLI authenticates without further setup.
Hiro Developers Only
When you are developing Task Manager from the repository, use--dev on server start, server stop, and server status.
What --dev changes:
- Enables dev CORS so the Vite app can talk to the API directly.
- Changes the default port to 3002 instead of 3001.
- Does not require a built frontend in
dist/.
--dev flag and --profile are independent:
npm run dev for the full development stack.