Skip to main content

Open

cmd/crewship/cmd_open.go opens the relevant web-UI page for a CLI resource in your default browser. The point: do everything in the terminal until you hit something better viewed visually (a chat, a mission timeline, an approval queue), then jump. open deliberately does not require auth — it’s just a URL resolver. The browser handles login if needed. Cross-platform launcher: open (macOS), cmd /c start "" (Windows), xdg-open (Linux). Dependency-free — uses os/exec rather than a Go browser library.

crewship open <resource> [id]

Resources

IDs that land in a path segment are url.PathEscape’d, so slugs with : or other reserved characters survive. agent and crew put their argument in a query value instead and use url.QueryEscapePathEscape leaves & and = alone, since both are legal in a path segment, and either would split the query string.
agent and crew take a slug, not an id. Neither has a detail page: both routes were folded into the /crews canvas, which selects from ?agent=<slug> and ?crew=<slug> and ignores anything that is not one (hooks/use-crews-selection.tsx). Pass an id and you get the canvas with nothing selected — open resolves URLs offline and without auth, so it has no way to translate one. crewship agent get <slug-or-id> and crewship crew get <slug-or-id> print the slug.agent used to build /agents/<id> and crew used to build /crews/<id>. Neither matches a route — the export has agents.html and crews.html and no directory under either — so both fell through to the SPA root: the dashboard, under a URL that named something else.

Examples

Common errors

  • unknown resource "foobar" (try: inbox, activity, agent[s], crew[s], chat, mission, journal, approvals, integrations, routines, issues, runs, settings, admin, audit, credentials) — typo or unsupported resource.
  • <resource> requires exactly 1 argument(s), got 0 — missed the ID.

See also

  • crewship inbox — the same destination, but stays in the terminal.
  • crewship login — the --server flag this command honours. The browser URL uses the effective server (--server → active profile → CREWSHIP_SERVER env → config), so it opens the same instance other commands dial.