Files
langship.sh/langship-cli/README.md
T
patel-lyzrandClaude Opus 4.7 dd2c0e171a feat: add langship CLI (agents, envs, pipelines, creds, runs)
Python/Typer/Rich/httpx CLI in langship-cli/. Talks to the Langship API
over HTTP; config in ~/.langship/config.toml (no built-in default URL —
requires `langship login` or LANGSHIP_API_URL).

Command groups:
  agents      list/get/create/delete/trigger/follow-env/unfollow-env/test-auth/webhook
  envs        list/get/create/update/delete/add-pipeline/remove-pipeline/reorder
  pipelines   list/get(-o json|yaml)/push(create-or-update from file)/delete
  creds       list/get/create(--type aws|gcp|kv)/delete
  runs        list/get/logs(-f streams the execution SSE feed)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-13 22:15:08 +05:30

3.3 KiB

langship

CLI for the Langship control plane. Drive agents, environments, pipelines, credentials, and runs from your terminal — same API the web UI uses.

Install

pip install -e /Users/khushpatel2002/langship-restate/langship-cli
# (once published: pip install langship)

Optional: pip install pyyaml to use -o yaml and YAML pipeline files.

Setup

langship login --api-url http://localhost:8090
# or just: langship login   (prompts; default http://localhost:8090)

Saved to ~/.langship/config.toml. Override per-invocation:

LANGSHIP_API_URL=http://localhost:8090 langship agents list
LANGSHIP_TOKEN=... langship agents list   # if/when the API requires auth

There is no built-in default URL — you must login (or set LANGSHIP_API_URL) before any command other than login.

Quick tour

# Agents
langship agents create --repo https://github.com/me/agent --pat ghp_...
langship agents list
langship agents get <agentId>
langship agents trigger <agentId>          # dispatch across followed envs

# Environments (named, ORDERED list of pipelines = the promotion sequence)
langship envs create dev -d "Auto-deploy on push"
langship pipelines push pipeline.json      # -> prints the new pipeline id
langship envs add-pipeline dev <pipelineId>
langship envs reorder dev <pid1> <pid2> <pid3>
langship envs get dev

# Agent follows an environment -> triggering it runs that env's pipelines
langship agents follow-env <agentId> dev
langship agents trigger <agentId>

# Credentials (global pool — server needs FLOW_SECRET_KEY set)
langship creds create prod-aws --type aws \
  --aws-region us-east-1 --aws-account 123456789012 \
  --aws-role-arn arn:aws:iam::123456789012:role/FlowDeployRole
langship creds list

# Runs
langship runs list
langship runs logs <executionId> -f         # stream live
langship runs get <executionId>

Commands

langship login [--api-url URL] [--token TOK]
langship config-show
langship version

langship agents list [-o json|yaml]
langship agents get <agentId> [-o ...]
langship agents create --repo <url> [--pat ...] [--name ...] [--ref ...]
langship agents delete <agentId> [-y]
langship agents trigger <agentId>
langship agents follow-env <agentId> <env>
langship agents unfollow-env <agentId> <env>
langship agents test-auth <agentId>
langship agents webhook install <agentId>
langship agents webhook uninstall <agentId>

langship envs list [-o ...]
langship envs get <name> [-o ...]
langship envs create <name> [-d <description>]
langship envs update <name> -d <description>
langship envs delete <name> [-y]
langship envs add-pipeline <name> <pipelineId>
langship envs remove-pipeline <name> <pipelineId>
langship envs reorder <name> <pid> <pid> ...

langship pipelines list [-o ...]
langship pipelines get <pipelineId> [-o json|yaml|table]
langship pipelines push <file.json|.yaml> [--id <pipelineId>] [--name ...]
langship pipelines delete <pipelineId> [-y]

langship creds list [-o ...]
langship creds get <name> [-o ...]
langship creds create <name> --type aws|gcp|kv [provider flags...]
langship creds delete <name> [-y]

langship runs list [--limit N] [--pipeline <id>] [-o ...]
langship runs get <executionId> [-o ...]
langship runs logs <executionId> [-f]

Env vars

  • LANGSHIP_API_URL — overrides the saved API URL
  • LANGSHIP_TOKEN — overrides the saved auth token