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.QueryEscape — PathEscape 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--serverflag this command honours. The browser URL uses the effective server (--server→ active profile →CREWSHIP_SERVERenv → config), so it opens the same instance other commands dial.