Getting started
Install from npm (Node 18 or later), then sign in with your browser:
npm install -g fishladder
fish login # opens the browser to authorise; the token goes in your system keychain
fish whoami # which team and account you're using- The CLI uses the REST API with a key that acts as you: your role and modules decide what works, and restricted boards stay hidden. Deleting is admin-only (except removing a HubSpot link).
- Add
--format jsonto most commands for machine-readable output. River, canvas, AI and labeler commands that take content also read it from stdin, so you can pipe files and transcripts in. - People can be named as
me, an email, a full name or a unique first name (see fish members). River pages can be named by the short ID fromfish river pagesor by title. - Update with
npm install -g fishladder@latest. This page describes v0.19.0.
fish login
fish loginAuthenticate with Fishladder via browser
fish login [options]| Option | Default | Description |
|---|---|---|
--team <id> | Mint the key for a specific team, instead of whichever org is active in the web app |
fish logout
fish logoutRemove stored keys — all of them, or one team with --team
fish logout [options]| Option | Default | Description |
|---|---|---|
--team <id> | Forget only this team, keeping the others |
fish whoami
fish whoamiShow the authenticated user, their team, and their access
fish whoami [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish teams
fish teamsList the teams you belong to, and switch between them
fish teams listdefaultList your teams, marking the one commands run against
fish teams list [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish teams usePoint subsequent commands at a team you already have a key for
fish teams use [options] <teamId>| Argument | Kind | Description |
|---|---|---|
<teamId>* | required | — |
fish projects
fish projectsManage roadmap projects
fish projects listList all projects
fish projects list [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish projects createCreate a new project
fish projects create [options] <title>| Argument | Kind | Description |
|---|---|---|
<title>* | required | — |
| Option | Default | Description |
|---|---|---|
--description <text> | Project description | |
--status <status> | planned | Status (default: planned) |
--initiative <id> | Initiative ID | |
--column <name> | Kanban column | |
--row <rowId> | Kanban row ID | |
--start <date> | Start date (YYYY-MM-DD) | |
--target <date> | Target date (YYYY-MM-DD) | |
--tracker <idOrName> | Link to a tracker project (board) — ID or name | |
--format <format> | table | Output format: table or json |
fish projects updateUpdate an existing project
fish projects update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--title <title> | New title | |
--description <text> | New description | |
--status <status> | New status | |
--initiative <id> | Initiative ID | |
--column <name> | Kanban column | |
--row <rowId> | Kanban row ID | |
--start <date> | Start date (YYYY-MM-DD) | |
--target <date> | Target date (YYYY-MM-DD) | |
--tracker <idOrName> | Link to a tracker project (board) — ID or name | |
--untrack | Remove the tracker project link | |
--format <format> | table | Output format: table or json |
fish projects deleteDelete a project
fish projects delete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
fish project
fish projectManage the default project for this directory
fish project useSet the default project (by ID, name, or unique name fragment); saved to .fishladder.json
fish project use [options] <nameOrId>| Argument | Kind | Description |
|---|---|---|
<nameOrId>* | required | — |
fish project currentShow the default project in effect
fish project current [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish project clearClear the default project saved in .fishladder.json
fish tasks
fish tasksManage tracker tasks
fish tasks projectsList tracker projects
fish tasks projects [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish tasks listList tasks (filters by the default project when one is set)
fish tasks list [options]| Option | Default | Description |
|---|---|---|
--project <id> | Filter by project ID | |
--all | List tasks across all projects, ignoring the default project | |
--format <format> | table | Output format: table or json |
fish tasks showShow full details of a task
fish tasks show [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish tasks createCreate a new task (supports smart syntax: @user !priority #tag due:date)
fish tasks create [options] <title>| Argument | Kind | Description |
|---|---|---|
<title>* | required | — |
| Option | Default | Description |
|---|---|---|
--project <id> | Project ID (defaults to the project set via fish project use) | |
--description <text> | Task description | |
--section <idOrName> | Section (board column) to place the task in — ID or name | |
--assign <who> | Assignee: me, a name, an email, or a user ID (see fish members) | |
--priority <level> | none | Priority: none, low, medium, high, urgent |
--due <date> | Due date (YYYY-MM-DD) | |
--format <format> | table | Output format: table or json |
fish tasks updateUpdate an existing task
fish tasks update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--title <title> | New title | |
--description <text> | New description | |
--assign <who> | Reassign: me, a name, an email, a user ID, or none (see fish members) | |
--priority <level> | Priority: none, low, medium, high, urgent | |
--due <date> | Due date (YYYY-MM-DD) | |
--section <idOrName> | Move to section (board column) — ID or name | |
--status <idOrName> | Set status — ID or name | |
--format <format> | table | Output format: table or json |
fish tasks completeMark a task as complete
fish tasks complete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish tasks deleteDelete a task
fish tasks delete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
fish tasks driveA task's Google Drive links (its Google Drive section)
fish tasks drive listdefaultList the Drive files linked to a task
fish tasks drive list [options] <taskId>| Argument | Kind | Description |
|---|---|---|
<taskId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish tasks drive addAdd a Google Drive / Docs / Sheets / Slides link to a task
fish tasks drive add [options] <taskId> <url>| Argument | Kind | Description |
|---|---|---|
<taskId>* | required | — |
<url>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish tasks drive removeRemove a Drive link from a task (admin — the API reserves deletes for admins)
fish tasks drive remove [options] <taskId> <linkId>| Argument | Kind | Description |
|---|---|---|
<taskId>* | required | — |
<linkId>* | required | — |
fish sections
fish sectionsManage board sections (columns) of a tracker project
fish sections listdefaultList sections of a project
fish sections list [options]| Option | Default | Description |
|---|---|---|
--project <id> | Project ID (defaults to the project set via fish project use) | |
--format <format> | table | Output format: table or json |
fish sections createCreate a section (board column)
fish sections create [options] <name>| Argument | Kind | Description |
|---|---|---|
<name>* | required | — |
| Option | Default | Description |
|---|---|---|
--project <id> | Project ID (defaults to the project set via fish project use) | |
--order <n> | Sort order (position among columns) | |
--format <format> | table | Output format: table or json |
fish statuses
fish statusesView workflow statuses of a tracker project
fish statuses listdefaultList statuses of a project
fish statuses list [options]| Option | Default | Description |
|---|---|---|
--project <id> | Project ID (defaults to the project set via fish project use) | |
--format <format> | table | Output format: table or json |
fish feedback
fish feedbackManage feedback entries
fish feedback listList all feedback
fish feedback list [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish feedback createCreate a new feedback entry
fish feedback create [options] <title>| Argument | Kind | Description |
|---|---|---|
<title>* | required | — |
| Option | Default | Description |
|---|---|---|
--details <text> | Feedback details | |
--impact <level> | medium | Impact: low, medium, high |
--company <name> | Company name | |
--format <format> | table | Output format: table or json |
fish feedback analyzeRun AI analysis on feedback (supports stdin)
fish feedback analyze [options]| Option | Default | Description |
|---|---|---|
--ids <ids> | Comma-separated feedback IDs to analyze | |
--format <format> | table | Output format: table or json |
fish hiring
fish hiringManage hiring / ATS
fish hiring jobsList open jobs
fish hiring jobs [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish hiring candidatesList all candidates
fish hiring candidates [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish hiring pipelineList applications (hiring pipeline)
fish hiring pipeline [options]| Option | Default | Description |
|---|---|---|
--job <id> | Filter by job ID | |
--format <format> | table | Output format: table or json |
fish hiring moveMove an application to a different stage
fish hiring move [options] <applicationId>| Argument | Kind | Description |
|---|---|---|
<applicationId>* | required | — |
| Option | Default | Description |
|---|---|---|
--stage <stageId>* | Target stage ID | |
--format <format> | table | Output format: table or json |
fish hiring hireMark an application as hired
fish hiring hire [options] <applicationId>| Argument | Kind | Description |
|---|---|---|
<applicationId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish hiring rejectReject an application
fish hiring reject [options] <applicationId>| Argument | Kind | Description |
|---|---|---|
<applicationId>* | required | — |
| Option | Default | Description |
|---|---|---|
--reason <text> | Rejection reason | |
--format <format> | table | Output format: table or json |
fish goals
fish goalsManage goals and OKRs
fish goals listList all goals
fish goals list [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish goals createCreate a new goal
fish goals create [options] <title>| Argument | Kind | Description |
|---|---|---|
<title>* | required | — |
| Option | Default | Description |
|---|---|---|
--description <text> | Goal description | |
--color <hex> | Color hex code (e.g. #6B7280) | |
--status <status> | active | Status (default: active) |
--format <format> | table | Output format: table or json |
fish initiatives
fish initiativesManage roadmap initiatives
fish initiatives listList all initiatives
fish initiatives list [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish initiatives createCreate a new initiative
fish initiatives create [options] <title>| Argument | Kind | Description |
|---|---|---|
<title>* | required | — |
| Option | Default | Description |
|---|---|---|
--description <text> | Initiative description | |
--status <status> | planned | Status (default: planned) |
--color <hex> | Color hex code | |
--row <rowId> | Kanban row ID | |
--format <format> | table | Output format: table or json |
fish rows
fish rowsManage kanban rows
fish rows listList all kanban rows
fish rows list [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish rows createCreate a new kanban row
fish rows create [options] <name>| Argument | Kind | Description |
|---|---|---|
<name>* | required | — |
| Option | Default | Description |
|---|---|---|
--goal <text> | Row goal description | |
--format <format> | table | Output format: table or json |
fish custom-fields
fish custom-fieldsView custom field definitions
fish custom-fields listList custom field definitions
fish custom-fields list [options]| Option | Default | Description |
|---|---|---|
--type <entityType> | Filter by entity type: task, candidate, or project | |
--format <format> | table | Output format: table or json |
fish webhooks
fish webhooksManage webhook endpoints
fish webhooks listList all webhooks
fish webhooks list [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish webhooks createCreate a new webhook endpoint
fish webhooks create [options] <url>| Argument | Kind | Description |
|---|---|---|
<url>* | required | — |
| Option | Default | Description |
|---|---|---|
--events <events>* | Comma-separated event names | |
--format <format> | table | Output format: table or json |
fish ai
fish aiAI-powered analysis and suggestions
fish ai chatChat with the AI assistant
fish ai chat [options] <message>| Argument | Kind | Description |
|---|---|---|
<message>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | text | Output format: text or json |
fish ai generate-tasksGenerate tasks from a transcript or notes (reads from stdin)
fish ai generate-tasks [options]| Option | Default | Description |
|---|---|---|
--project <id>* | Project ID | |
--format <format> | table | Output format: table or json |
fish ai detect-blockedDetect blocked tasks in a project
fish ai detect-blocked [options]| Option | Default | Description |
|---|---|---|
--project <id>* | Project ID | |
--format <format> | table | Output format: table or json |
fish ai suggest-priorityGet an AI-suggested priority for a task
fish ai suggest-priority [options] <taskId>| Argument | Kind | Description |
|---|---|---|
<taskId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | text | Output format: text or json |
fish ai suggest-assignmentGet an AI-suggested assignee for a task
fish ai suggest-assignment [options] <taskId>| Argument | Kind | Description |
|---|---|---|
<taskId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | text | Output format: text or json |
fish ai ingestExtract structured feedback from raw text (reads from stdin)
fish ai ingest [options]| Option | Default | Description |
|---|---|---|
--source <source> | manual | Source label (e.g. support, review, interview) |
--format <format> | table | Output format: table or json |
fish ai auto-groupAuto-cluster feedback items into groups
fish ai auto-group [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish ai scoreAI-score a candidate application
fish ai score [options] <applicationId>| Argument | Kind | Description |
|---|---|---|
<applicationId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | text | Output format: text or json |
fish ai bottlenecksIdentify hiring pipeline bottlenecks
fish ai bottlenecks [options]| Option | Default | Description |
|---|---|---|
--job <id>* | Job ID | |
--format <format> | table | Output format: table or json |
fish ai suggest-projectsSuggest new roadmap projects from feedback patterns
fish ai suggest-projects [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish ai connect-goalsAuto-link projects to strategic goals
fish ai connect-goals [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish ai signalsView active AI signals
fish ai signals [options]| Option | Default | Description |
|---|---|---|
--module <module> | Filter by module: feedback, tracker, roadmap, ats, cross | |
--format <format> | table | Output format: table or json |
fish ai actionsList AI actions
fish ai actions [options]| Option | Default | Description |
|---|---|---|
--status <status> | Filter by status (e.g. pending, applied) | |
--module <module> | Filter by module | |
--format <format> | table | Output format: table or json |
fish ai approveApprove a pending AI action
fish ai approve [options] <actionId>| Argument | Kind | Description |
|---|---|---|
<actionId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | text | Output format: text or json |
fish ai rejectReject a pending AI action
fish ai reject [options] <actionId>| Argument | Kind | Description |
|---|---|---|
<actionId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | text | Output format: text or json |
fish ai undoUndo an applied AI action
fish ai undo [options] <actionId>| Argument | Kind | Description |
|---|---|---|
<actionId>* | required | — |
| Option | Default | Description |
|---|---|---|
--feedback <text> | Feedback on why this was undone | |
--format <format> | text | Output format: text or json |
fish crm
fish crmCRM — contacts, companies, deals, pipelines, activities
fish crm contactsList contacts
fish crm contacts [options] [command]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm contacts showShow a contact
fish crm contacts show [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm contacts createCreate a contact
fish crm contacts create [options]| Option | Default | Description |
|---|---|---|
--first-name <name>* | First name | |
--last-name <name>* | Last name | |
--email <email> | Email address | |
--phone <phone> | Phone number | |
--title <title> | Job title | |
--company <companyId> | Company ID | |
--source <source> | Source: referral, linkedin, website, cold_outreach, event, inbound, other | |
--lifecycle <stage> | Lifecycle stage: lead, qualified, opportunity, customer, churned | |
--format <format> | table | Output format: table or json |
fish crm contacts updateUpdate a contact
fish crm contacts update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--first-name <name> | First name | |
--last-name <name> | Last name | |
--email <email> | Email address | |
--phone <phone> | Phone number | |
--title <title> | Job title | |
--company <companyId> | Company ID | |
--source <source> | Source | |
--lifecycle <stage> | Lifecycle stage | |
--format <format> | table | Output format: table or json |
fish crm contacts deleteDelete a contact
fish crm contacts delete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
fish crm companiesList companies
fish crm companies [options] [command]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm companies showShow a company
fish crm companies show [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm companies createCreate a company
fish crm companies create [options]| Option | Default | Description |
|---|---|---|
--name <name>* | Company name | |
--domain <domain> | Domain | |
--industry <industry> | Industry | |
--website <url> | Website URL | |
--size <size> | Size: startup, small, medium, large, enterprise | |
--phone <phone> | Phone number | |
--format <format> | table | Output format: table or json |
fish crm companies updateUpdate a company
fish crm companies update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--name <name> | Company name | |
--domain <domain> | Domain | |
--industry <industry> | Industry | |
--website <url> | Website URL | |
--size <size> | Size | |
--phone <phone> | Phone number | |
--format <format> | table | Output format: table or json |
fish crm companies deleteDelete a company
fish crm companies delete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
fish crm dealsList deals
fish crm deals [options] [command]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm deals showShow a deal
fish crm deals show [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm deals createCreate a deal
fish crm deals create [options]| Option | Default | Description |
|---|---|---|
--title <title>* | Deal title | |
--pipeline <pipelineId>* | Pipeline ID | |
--stage <stageId> | Stage ID | |
--value <cents> | Value in cents (e.g. 50000 = $500.00) | |
--currency <code> | Currency code (default: USD) | |
--contact <contactId> | Contact ID | |
--company <companyId> | Company ID | |
--expected-close <date> | Expected close date (YYYY-MM-DD) | |
--format <format> | table | Output format: table or json |
fish crm deals updateUpdate a deal
fish crm deals update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--title <title> | Deal title | |
--pipeline <pipelineId> | Pipeline ID | |
--stage <stageId> | Stage ID | |
--value <cents> | Value in cents | |
--currency <code> | Currency code | |
--contact <contactId> | Contact ID | |
--company <companyId> | Company ID | |
--expected-close <date> | Expected close date (YYYY-MM-DD) | |
--status <status> | Status: open, won, lost | |
--lost-reason <text> | Lost reason | |
--format <format> | table | Output format: table or json |
fish crm deals deleteDelete a deal
fish crm deals delete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
fish crm pipelinesList pipelines
fish crm pipelines [options] [command]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm pipelines showShow a pipeline and its stages
fish crm pipelines show [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm pipelines createCreate a pipeline
fish crm pipelines create [options]| Option | Default | Description |
|---|---|---|
--name <name>* | Pipeline name | |
--format <format> | table | Output format: table or json |
fish crm pipelines updateUpdate a pipeline
fish crm pipelines update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--name <name> | Pipeline name | |
--format <format> | table | Output format: table or json |
fish crm pipelines deleteDelete a pipeline
fish crm pipelines delete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
fish crm activitiesList activities
fish crm activities [options] [command]| Option | Default | Description |
|---|---|---|
--contact <contactId> | Filter by contact | |
--company <companyId> | Filter by company | |
--deal <dealId> | Filter by deal | |
--format <format> | table | Output format: table or json |
fish crm activities showShow an activity
fish crm activities show [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm activities createCreate an activity
fish crm activities create [options]| Option | Default | Description |
|---|---|---|
--type <type>* | Type: call, email, meeting, note, task | |
--subject <text> | Subject | |
--body <text> | Body text | |
--for-contact <contactId> | Contact ID | |
--for-company <companyId> | Company ID | |
--for-deal <dealId> | Deal ID | |
--duration <minutes> | Duration in minutes | |
--format <format> | table | Output format: table or json |
fish crm activities updateUpdate an activity
fish crm activities update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--type <type> | Type: call, email, meeting, note, task | |
--subject <text> | Subject | |
--body <text> | Body text | |
--for-contact <contactId> | Contact ID | |
--for-company <companyId> | Company ID | |
--for-deal <dealId> | Deal ID | |
--duration <minutes> | Duration in minutes | |
--format <format> | table | Output format: table or json |
fish crm activities deleteDelete an activity
fish crm activities delete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
fish crm scoreAI-score a deal
fish crm score [options] <dealId>| Argument | Kind | Description |
|---|---|---|
<dealId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm suggestSuggest next actions for a deal or contact
fish crm suggest [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--deal <dealId> | Deal ID | |
--contact <contactId> | Contact ID | |
--format <format> | table | Output format: table or json |
fish crm enrich-contactEnrich a contact via SalmonRun
fish crm enrich-contact [options] <contactId>| Argument | Kind | Description |
|---|---|---|
<contactId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm enrich-companyEnrich a company via SalmonRun
fish crm enrich-company [options] <companyId>| Argument | Kind | Description |
|---|---|---|
<companyId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm search-contactsSearch for contacts at a company
fish crm search-contacts [options] <companyId>| Argument | Kind | Description |
|---|---|---|
<companyId>* | required | — |
| Option | Default | Description |
|---|---|---|
--department <dept> | Comma-separated: engineering, sales, marketing, product, hr, finance, legal, operations | |
--seniority <level> | Comma-separated: c-level, vp, director, manager, senior, mid, junior | |
--count <n> | Max contacts to return | |
--format <format> | table | Output format: table or json |
fish crm analyzeAI-analyze a pipeline
fish crm analyze [options] <pipelineId>| Argument | Kind | Description |
|---|---|---|
<pipelineId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish crm draft-emailDraft an email for a contact
fish crm draft-email [options] <contactId>| Argument | Kind | Description |
|---|---|---|
<contactId>* | required | — |
| Option | Default | Description |
|---|---|---|
--purpose <text>* | What the email is about | |
--deal <dealId> | Deal context | |
--tone <tone> | professional | Tone: professional, casual, formal |
--format <format> | table | Output format: table or json |
fish crm summarizeSummarize activities for a contact, deal, or company
fish crm summarize [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--contact <contactId> | Contact ID | |
--deal <dealId> | Deal ID | |
--company <companyId> | Company ID | |
--format <format> | table | Output format: table or json |
fish cpq
fish cpqCPQ — products, quotes, line items
fish cpq productsList products
fish cpq products [options] [command]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish cpq products showShow a product
fish cpq products show [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish cpq quotesList quotes
fish cpq quotes [options] [command]| Option | Default | Description |
|---|---|---|
--status <status> | Filter by status: draft, sent, viewed, accepted, declined, expired | |
--format <format> | table | Output format: table or json |
fish cpq quotes showShow a quote with line items
fish cpq quotes show [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish cpq quotes createCreate a quote
fish cpq quotes create [options]| Option | Default | Description |
|---|---|---|
--title <title>* | Quote title | |
--recipient <name> | Recipient name | |
--email <addr> | Recipient email | |
--company <name> | Recipient company | |
--currency <code> | Currency code (default: USD) | |
--valid-until <date> | Valid until date (YYYY-MM-DD) | |
--terms <text> | Payment terms | |
--notes <text> | Notes (visible to recipient) | |
--internal-notes <text> | Internal notes | |
--template <templateId> | Template ID | |
--deal <dealId> | Deal ID (CRM link) | |
--contact <contactId> | Contact ID (CRM link) | |
--format <format> | table | Output format: table or json |
fish cpq quotes updateUpdate a quote
fish cpq quotes update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--title <title> | Quote title | |
--recipient <name> | Recipient name | |
--email <addr> | Recipient email | |
--company <name> | Recipient company | |
--currency <code> | Currency code | |
--valid-until <date> | Valid until date (YYYY-MM-DD) | |
--terms <text> | Payment terms | |
--notes <text> | Notes | |
--internal-notes <text> | Internal notes | |
--template <templateId> | Template ID | |
--deal <dealId> | Deal ID | |
--contact <contactId> | Contact ID | |
--format <format> | table | Output format: table or json |
fish cpq quotes deleteDelete a draft quote
fish cpq quotes delete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
fish cpq quotes add-itemAdd a line item to a quote
fish cpq quotes add-item [options] <quoteId>| Argument | Kind | Description |
|---|---|---|
<quoteId>* | required | — |
| Option | Default | Description |
|---|---|---|
--name <name>* | Line item name | |
--qty <n> | Quantity (default: 1) | |
--price <cents> | Unit price in cents | |
--product <productId> | Product ID (links to catalog) | |
--description <text> | Description | |
--discount-pct <n> | Discount percentage | |
--discount-amt <cents> | Discount fixed amount in cents | |
--tax <bps> | Tax rate in basis points (1000 = 10%) | |
--billing <interval> | Billing interval: monthly, quarterly, annual | |
--section <sectionId> | Section ID | |
--sort <n> | Sort order | |
--format <format> | table | Output format: table or json |
fish cpq quotes update-itemUpdate a line item
fish cpq quotes update-item [options] <quoteId> <itemId>| Argument | Kind | Description |
|---|---|---|
<quoteId>* | required | — |
<itemId>* | required | — |
| Option | Default | Description |
|---|---|---|
--name <name> | Line item name | |
--qty <n> | Quantity | |
--price <cents> | Unit price in cents | |
--product <productId> | Product ID | |
--description <text> | Description | |
--discount-pct <n> | Discount percentage | |
--discount-amt <cents> | Discount fixed amount in cents | |
--tax <bps> | Tax rate in basis points | |
--billing <interval> | Billing interval | |
--section <sectionId> | Section ID | |
--sort <n> | Sort order | |
--format <format> | table | Output format: table or json |
fish cpq quotes remove-itemRemove a line item from a quote
fish cpq quotes remove-item [options] <quoteId> <itemId>| Argument | Kind | Description |
|---|---|---|
<quoteId>* | required | — |
<itemId>* | required | — |
fish cpq quotes sendSend a quote and get a share link
fish cpq quotes send [options] <quoteId>| Argument | Kind | Description |
|---|---|---|
<quoteId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish river
fish riverManage River wiki spaces and pages
fish river spacesManage wiki spaces
fish river spaces listdefaultList wiki spaces
fish river spaces list [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish river spaces createCreate a wiki space
fish river spaces create [options] <name>| Argument | Kind | Description |
|---|---|---|
<name>* | required | — |
| Option | Default | Description |
|---|---|---|
--description <text> | Space description | |
--icon <icon> | Space icon | |
--format <format> | table | Output format: table or json |
fish river pagesList wiki pages as a tree (structure only, no content)
fish river pages [options]| Option | Default | Description |
|---|---|---|
--space <idOrName> | Filter by space — name, ID or ID prefix | |
--archived | Include archived pages | |
--format <format> | tree | Output format: tree or json |
fish river showShow a wiki page as markdown — ID, ID prefix, or title
fish river show [options] <page>| Argument | Kind | Description |
|---|---|---|
<page>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | md | Output format: md or json |
fish river createCreate a wiki page (content from --file, --content, or stdin as markdown)
fish river create [options] <title>| Argument | Kind | Description |
|---|---|---|
<title>* | required | — |
| Option | Default | Description |
|---|---|---|
--space <idOrName>* | Space — name or ID (required) | |
--parent <idOrTitle> | Parent page — title or ID (must be in that space) | |
--content <markdown> | Page content as markdown | |
--file <path> | Read page content from a markdown file | |
--format <format> | table | Output format: table or json |
fish river updateUpdate a wiki page — ID, ID prefix, or title (content from --file, --content, or stdin as markdown)
fish river update [options] <page>| Argument | Kind | Description |
|---|---|---|
<page>* | required | — |
| Option | Default | Description |
|---|---|---|
--title <title> | New title | |
--content <markdown> | New content as markdown (replaces existing) | |
--file <path> | Read new content from a markdown file | |
--parent <idOrTitle> | Move under a new parent page | |
--summary <text> | Version summary for the snapshot of the previous content | |
--archive | Archive the page | |
--unarchive | Restore an archived page | |
--format <format> | table | Output format: table or json |
fish river moveMove a page to a space (top level) or under a parent page — IDs, ID prefixes, or names accepted
fish river move [options] <page>| Argument | Kind | Description |
|---|---|---|
<page>* | required | — |
| Option | Default | Description |
|---|---|---|
--space <idOrName> | Destination space; top level unless --parent is also given | |
--parent <idOrTitle> | Destination parent page | |
--create-space | Create the space named by --space if it does not exist | |
--position <n> | Slot among the new siblings (default: after the last one) | |
--format <format> | table | Output format: table or json |
fish river linkLink a page to a Fishladder entity (e.g. tracker_task, crm_deal, roadmap_project)
fish river link [options] <page> <entityType> <entityId>| Argument | Kind | Description |
|---|---|---|
<page>* | required | — |
<entityType>* | required | — |
<entityId>* | required | — |
| Option | Default | Description |
|---|---|---|
--type <linkType> | attached | Link type: attached, embed, or inbound |
--anchor <headingId> | Deep-link to a heading anchor on the page | |
--format <format> | table | Output format: table or json |
fish river linksList entity links on a page — ID, ID prefix, or title
fish river links [options] <page>| Argument | Kind | Description |
|---|---|---|
<page>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish canvas
fish canvasManage canvases — self-contained HTML documents hosted by Fishladder
fish canvas listdefaultList canvases
fish canvas list [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish canvas showShow a canvas (metadata by default; --html prints the raw document)
fish canvas show [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--html | Print the raw HTML document to stdout (pipe to a file to export) | |
--format <format> | table | Output format: table or json |
fish canvas createCreate a canvas (HTML from --file, --html, or stdin)
fish canvas create [options] <title>| Argument | Kind | Description |
|---|---|---|
<title>* | required | — |
| Option | Default | Description |
|---|---|---|
--file <path> | Read the HTML document from a file | |
--html <html> | HTML document as a string | |
--description <text> | One-line description | |
--format <format> | table | Output format: table or json |
fish canvas updateUpdate a canvas (document from --file, --html, or stdin; previous version kept)
fish canvas update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--title <title> | New title | |
--description <text> | New description | |
--file <path> | Read the replacement HTML document from a file | |
--html <html> | Replacement HTML document as a string | |
--format <format> | table | Output format: table or json |
fish canvas deleteDelete a canvas
fish canvas delete [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
fish canvas versionsList past versions of a canvas (newest first)
fish canvas versions [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish canvas restoreRestore a past version (the restore itself is snapshotted too)
fish canvas restore [options] <id> <versionId>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
<versionId>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish labeler
fish labelerLabeler projects, labelers, tasks, and work logged on their behalf
fish labeler projectsList labeler projects with their labelers and managers
fish labeler projects [options]| Option | Default | Description |
|---|---|---|
--archived | Include archived projects | |
--format <format> | table | Output format: table or json |
fish labeler labelersList labeler-role members and the projects they are assigned to
fish labeler labelers [options]| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish labeler tasksTasks pushed by a platform or logged in the app
fish labeler tasks listdefaultList tasks
fish labeler tasks list [options]| Option | Default | Description |
|---|---|---|
--project <id> | Filter by project ID | |
--labeler <emailOrId> | Filter by labeler email or user ID | |
--status <status> | assigned | in_progress | done | rejected | |
--source <source> | api | manual | ui | |
--external-id <id> | Match a platform task id | |
--from <date> | Window start (ISO or YYYY-MM-DD) | |
--to <date> | Window end (ISO or YYYY-MM-DD) | |
--limit <n> | Max rows (default 200, max 500) | |
--format <format> | table | Output format: table or json |
fish labeler tasks pushCreate or update tasks from JSON (a task object or an array) via --file, --json, or stdin; idempotent on source + externalId
fish labeler tasks push [options]| Option | Default | Description |
|---|---|---|
--file <path> | Read JSON from a file | |
--json <json> | Inline JSON | |
--project <id> | Default projectId for items that omit one | |
--labeler <emailOrId> | Default labeler for items that omit one | |
--format <format> | table | Output format: table or json |
fish labeler tasks updateUpdate one task by ID
fish labeler tasks update [options] <id>| Argument | Kind | Description |
|---|---|---|
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--status <status> | assigned | in_progress | done | rejected | |
--title <title> | New title | |
--quantity <n> | Units of work | |
--duration <seconds> | Duration in seconds | |
--labeler <emailOrId> | Reassign to another labeler | |
--completed-at <date> | Completion time (ISO); "null" clears it | |
--format <format> | table | Output format: table or json |
fish labeler log-timeLog a block of time on behalf of a labeler
fish labeler log-time [options]| Option | Default | Description |
|---|---|---|
--project <id>* | Labeler project ID | |
--labeler <emailOrId>* | Labeler email or user ID | |
--minutes <n> | Duration in minutes | |
--seconds <n> | Duration in seconds | |
--started-at <date> | When the block started (ISO); default: ends now | |
--note <text> | Description | |
--format <format> | table | Output format: table or json |
fish labeler log-unitsLog completed units on behalf of a labeler
fish labeler log-units [options]| Option | Default | Description |
|---|---|---|
--project <id>* | Labeler project ID | |
--labeler <emailOrId>* | Labeler email or user ID | |
--quantity <n>* | Units completed | |
--at <date> | When (ISO); default now | |
--note <text> | Note | |
--format <format> | table | Output format: table or json |
fish calendar
fish calendaralias: dueWhat's due in a time frame — tasks, project target dates, deal closes, quote expirations and more
fish calendar [options]| Option | Default | Description |
|---|---|---|
--days <n> | Days from today to cover, including today (default 14; negative looks back) | |
--start <date> | Start date (YYYY-MM-DD, default today) | |
--end <date> | End date, inclusive (YYYY-MM-DD). Use --end or --days, not both | |
--type <types> | Only these types (repeatable or comma-separated): tasks, targets, deals, quotes, interviews, questionnaires, milestones, events | |
--project <names> | Only these projects — board or roadmap names/IDs, partial names match (repeatable or comma-separated) | |
--completed | Include finished tasks and completed roadmap projects | |
--timezone <zone> | IANA time zone deciding what "today" is (default: this machine's) | |
--limit <n> | Maximum items (default 200, max 500) | |
--format <format> | table | Output format: table or json |
fish members
fish membersList team members you can assign work to (active members only)
fish members [options]| Option | Default | Description |
|---|---|---|
--all | Include deactivated members, marked inactive | |
--format <format> | table | Output format: table or json |
fish hubspot
fish hubspotHubSpot companies and contacts linked to tasks, roadmap projects and River pages (needs HubSpot connected; nothing is written to HubSpot)
fish hubspot searchSearch the connected HubSpot portal for companies (or contacts)
fish hubspot search [options] <query>| Argument | Kind | Description |
|---|---|---|
<query>* | required | — |
| Option | Default | Description |
|---|---|---|
--contacts | Search contacts instead of companies | |
--limit <n> | 10 | Maximum results (max 50) |
--format <format> | table | Output format: table or json |
fish hubspot linksList HubSpot records linked to an item (item: task, project or page)
fish hubspot links [options] <item> <id>| Argument | Kind | Description |
|---|---|---|
<item>* | required | — |
<id>* | required | — |
| Option | Default | Description |
|---|---|---|
--format <format> | table | Output format: table or json |
fish hubspot linkLink a HubSpot company (or --contact) to a task, project or page
fish hubspot link [options] <item> <id> <hubspotId>| Argument | Kind | Description |
|---|---|---|
<item>* | required | — |
<id>* | required | — |
<hubspotId>* | required | — |
| Option | Default | Description |
|---|---|---|
--contact | The HubSpot ID is a contact, not a company | |
--format <format> | table | Output format: table or json |
fish hubspot unlinkRemove a HubSpot link from an item (link ID from `fish hubspot links`)
fish hubspot unlink [options] <item> <id> <linkId>| Argument | Kind | Description |
|---|---|---|
<item>* | required | — |
<id>* | required | — |
<linkId>* | required | — |
Generated from the CLI's own command definitions (fishladder v0.19.0).