fishladder
v0.9.0
Published
Fishladder CLI — manage projects, tasks, feedback, and hiring from your terminal
Maintainers
Readme
Fishladder CLI
Command-line tool for Fishladder — manage projects, tasks, feedback, hiring, and AI features from your terminal.
npm install -g fishladderAuthentication
fish login # Opens browser for OAuth login
fish logout # Remove stored token
fish whoami # Show current userOr set FISHLADDER_API_KEY=fl_<key> to skip browser login (useful for CI).
Commands
Projects & Roadmap
fish projects list # includes Tracker link + Tasks (done/total) columns
fish projects create "Mobile app v2" --status planned --target 2026-09-30 --tracker "Mobile Board"
fish projects update <id> --status in_progress --column "Now"
fish projects update <id> --tracker "Mobile Board" # link a tracker board (name or ID)
fish projects update <id> --untrack # remove the link
fish projects delete <id>
fish goals list
fish goals create "Reduce churn by 20%"
fish initiatives list
fish initiatives create "Platform v2" --status in_progress
fish rows list
fish rows create "Growth"Default project
Bind a directory to a Fishladder project so task commands don't need --project:
fish project use "Alpha Launch" # by name, unique fragment, or ID
fish project current # show what's in effect
fish project clear # unbindThis writes the project ID to a .fishladder.json in the current directory (found by walking up from wherever you run fish, like .git). It contains no secrets, so it's safe to commit — useful when agents or teammates work in the same repo. FISHLADDER_PROJECT_ID overrides the file; --project overrides both.
Tasks
fish tasks list --project <id> # --project optional when a default project is set
fish tasks list --all # ignore the default project
fish tasks create "Fix auth bug" --priority high --due 2026-04-01 --section "In Progress"
fish tasks update <id> --section "Done" --status done # sections/statuses accept names or IDs
fish tasks complete <id>
fish sections # list board columns (uses default project)
fish sections create "Review" --order 3
fish statuses # list workflow statuses (shows default/closed flags)Smart syntax for quick task creation:
fish tasks create "Fix login bug" --project <id> @sarah !high #backend due:friday@user— assignee!priority— low, medium, high, urgent#tag— tags (multiple allowed)due:date— YYYY-MM-DD, today, tomorrow, or weekday name
River wiki
fish river spaces # list wiki spaces
fish river spaces create "Engineering"
fish river pages --space <id> # page tree (structure)
fish river show <pageId> # page as markdown
fish river create "API Guide" --space <id> --file ./guide.md
cat notes.md | fish river create "Notes" --space <id>
fish river update <pageId> --file ./guide.md --summary "refreshed examples"
fish river update <pageId> --archive
fish river link <pageId> tracker_task <taskId> # link page to an entity
fish river links <pageId>Content is markdown in and markdown out — the server converts to the wiki's native format. Entity types for link: tracker_task, tracker_project, roadmap_project, roadmap_initiative, crm_company, crm_contact, crm_deal, cpq_quote, hiring_job, hiring_candidate, goal, and more.
Feedback
fish feedback list
fish feedback create "Users want dark mode" --impact high --company "Acme Corp"
fish feedback analyze --ids fb1,fb2,fb3Analyze also supports stdin:
fish feedback list --format json | fish feedback analyze
echo "Users keep asking for dark mode" | fish feedback analyzeHiring
fish hiring jobs
fish hiring candidates
fish hiring pipeline --job <id>
fish hiring move <applicationId> --stage <stageId>
fish hiring hire <applicationId>
fish hiring reject <applicationId> --reason "Not a fit"AI
# Chat with the AI assistant
fish ai chat "what's blocking the platform team?"
# Generate tasks from meeting notes
cat meeting-notes.txt | fish ai generate-tasks --project <id>
pbpaste | fish ai generate-tasks --project <id>
# Feedback intelligence
cat support-transcript.txt | fish ai ingest --source support
fish ai auto-group
fish ai suggest-projects
# Task suggestions
fish ai suggest-priority <taskId>
fish ai suggest-assignment <taskId>
fish ai detect-blocked --project <id>
# Hiring AI
fish ai score <applicationId>
fish ai bottlenecks --job <id>
# Roadmap AI
fish ai connect-goals
# Signals & actions
fish ai signals --module feedback
fish ai actions --status pending
fish ai approve <actionId>
fish ai reject <actionId>
fish ai undo <actionId> --feedback "Wrong priority"Other
fish custom-fields list --type task
fish webhooks list
fish webhooks create https://example.com/hook --events task.created,task.updatedJSON Output
Every list command supports --format json for scripting:
fish tasks list --project <id> --format json | jq '.[].title'
fish feedback list --format json | jq 'length'Environment Variables
| Variable | Default | Purpose |
|----------|---------|---------|
| FISHLADDER_API_KEY | — | API key (skips browser login) |
| FISHLADDER_API_URL | https://app.ladder.fish/api/v1 | API base URL |
| FISHLADDER_AUTH_URL | https://app.ladder.fish | Auth page URL |
| FISHLADDER_PROJECT_ID | — | Default project ID (overrides .fishladder.json) |
Development
git clone https://github.com/prone/fishladder-cli.git
cd fishladder-cli
npm install
npm link
npm test # 83 testsLicense
MIT
