Skip to main content
Captain is MeepaGateway’s built-in web dashboard. It runs at http://localhost:63372 when the gateway is started. Everything in the dashboard is also available via the CLI and the Captain HTTP API.

First-time setup

When the gateway starts with no config file, it enters setup mode:
  1. A one-time setup code is printed to the terminal
  2. Open http://localhost:63372/setup in your browser
  3. Enter the setup code to verify local access
  4. Set a password for future logins
  5. Configure your LLM provider and first agent connector
  6. The gateway writes the config file and starts normally
To re-run setup:

Headless / automated setup

For unattended deployments (cloud-init, Docker, CI), set MEEPAGATEWAY_PASSWORD before the first run. The gateway will hash the password, write it to config, and start normally without displaying a setup code:
This env var is only read when no password_hash exists in config. Once a hash is written, it is ignored on subsequent starts.

Authentication

Captain supports three authentication methods.

Password

Set during setup. Stored as an Argon2 hash in the config file under captain.password_hash. Change it via the dashboard Settings page or:

API keys

For programmatic access. Each key has a name and a cptn_ prefix displayed in the dashboard.
Use the key via header or env var:

Configuration

Exposure modes: When exposing Captain beyond localhost, always use a strong password and TLS termination.

API reference

All dashboard operations are available via the Captain API at http://localhost:63372/api/captain/.

Status

No authentication required.

Auth endpoints

Config endpoints

Agent endpoints

Example: create an agent

Example: update agent soul

Example: add a connector


Security recommendations

  • Keep bind: 127.0.0.1 unless you need remote access. Use a reverse proxy with TLS for public exposure.
  • Create dedicated API keys for CI/CD pipelines. Revoke them when no longer needed.
  • Use a strong, unique password. The gateway uses Argon2 hashing.