{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-cli/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Getting started","projectTitle":"Frontline Documentation","llmstxt":{"hide":false,"sections":[{"title":"Table of contents","includeFiles":["**/*"],"excludeFiles":[]}],"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"getting-started","__idx":0},"children":["Getting started"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The Frontline CLI ships two binaries that share the same API key store:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["frontline"]}]}," — Public REST API client: agents, workflows, billing, tables, objects, tools, raw GETs."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["max"]}]}," — Max chat & admin client: send messages, manage conversations, REPL."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"install","__idx":1},"children":["Install"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"npm install -g @getfrontline/cli\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Or run any command on demand:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"npx @getfrontline/cli --help\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Requires Node ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["18+"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"first-time-setup","__idx":2},"children":["First-time setup"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"frontline auth login <api-key>\nfrontline auth whoami\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Generate your API key from the Frontline app: click your user name in the bottom-left of the sidebar → ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings"]},", then choose ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bring your own Agent"]}," (for a personal ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USER"]}," key) or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Developer"]}," (for an account-level ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GENERAL"]}," key). See ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/cli/authentication"},"children":["Authentication"]}," for the full breakdown and which scope each command needs."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The same login also authenticates ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["max"]},":"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"max auth whoami\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"profiles","__idx":3},"children":["Profiles"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["You can store multiple API keys side-by-side and switch between them:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"frontline auth profiles list             # all saved profiles + active one\nfrontline auth profiles use prod         # switch active profile\nfrontline auth logout                    # remove active profile\nfrontline auth logout --profile staging  # remove a specific profile\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Every command accepts a one-off ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--profile <name>"]}," override for scripting and CI."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"output-formats","__idx":4},"children":["Output formats"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["All ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["frontline"]}," commands print ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["JSON to stdout by default"]}," so they pipe into ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["jq"]}," and other tools cleanly. Opt into human-readable output with:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--pretty"]}," — key/value blocks, spinners, icons."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--table"]}," — tabular rendering for list endpoints."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Errors always go to ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["stderr"]}," in human form; in default JSON mode they also appear on stdout as structured JSON so scripts can branch on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["ok"]},"/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error"]}," fields."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"global-flags","__idx":5},"children":["Global flags"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Available on every ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["frontline"]}," command:"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Flag"},"children":["Flag"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Purpose"},"children":["Purpose"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--api-key <key>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Override the stored API key for one call."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--profile <name>"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use a specific saved profile."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--debug"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Verbose request/response logs."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--pretty"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Human-readable output."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--table"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Tabular output for list endpoints."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["max"]}," exposes a similar set: ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--api-key"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--profile"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--base-url"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--debug"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--pretty"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["--json"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"your-first-call","__idx":6},"children":["Your first call"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"frontline agents list --table\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Or with the Max binary:"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"max \"Hola Max\"\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the full command reference, browse the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["frontline"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["max"]}," groups in the sidebar."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"claude-code-skills","__idx":7},"children":["Claude Code skills"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Optional: install Frontline skills into Claude Code (auto-detected on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npm install"]},"):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"bash","header":{"controls":{"copy":{}}},"source":"frontline setup --claude-skills          # install new skills\nfrontline setup --claude-skills --force  # overwrite existing\n","lang":"bash"},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"troubleshooting","__idx":8},"children":["Troubleshooting"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Symptom"},"children":["Symptom"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Likely cause"},"children":["Likely cause"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["\"No API key found\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Run ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["frontline auth login <key>"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["\"Missing or invalid API key\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Key expired or revoked. Create a new one in ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings → Bring your own Agent"]}," (personal) or ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Settings → Developer"]}," (account)."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["401 Unauthorized"]}]}," on a write"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You're using a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GENERAL"]}," key on a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["USER"]},"-only endpoint (e.g. creating an agent, publishing a flow). Generate a personal key under ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Bring your own Agent"]},"."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["\"Request timed out\""]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Network issue or backend slow. Retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429 Too Many Requests"]}]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Rate limit (1000 req/min per account). Back off."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["CLI outdated error"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Upgrade with ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["npm i -g @getfrontline/cli@latest"]},"."]}]}]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"need-help-using-the-platform-itself","__idx":9},"children":["Need help using the platform itself?"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["These docs cover the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["CLI"]},". For walkthroughs of the Frontline app — setting up channels, configuring agents in the UI, billing in-product, troubleshooting end-user flows — head to ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://help.getfrontline.ai"},"children":["https://help.getfrontline.ai"]},"."]}]},"headings":[{"value":"Getting started","id":"getting-started","depth":1},{"value":"Install","id":"install","depth":2},{"value":"First-time setup","id":"first-time-setup","depth":2},{"value":"Profiles","id":"profiles","depth":2},{"value":"Output formats","id":"output-formats","depth":2},{"value":"Global flags","id":"global-flags","depth":2},{"value":"Your first call","id":"your-first-call","depth":2},{"value":"Claude Code skills","id":"claude-code-skills","depth":2},{"value":"Troubleshooting","id":"troubleshooting","depth":2},{"value":"Need help using the platform itself?","id":"need-help-using-the-platform-itself","depth":2}],"frontmatter":{"seo":{"title":"Getting started"}},"lastModified":"2026-05-27T22:35:10.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/cli/getting-started","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}