FishTea
Documentation

CLI reference

Captured from fishtea help when this page was built, so it is whatever the shipped binary actually does.

fishtea — describe once, derive everything

  fishtea templates           list the archetypes and their onboarding interviews
  fishtea new <id> --template <archetype> [--dir path] [--name "Name"] [--answers a.json | --interactive]
  fishtea version             framework, spec format, and what this application pins
  fishtea versions            every installed version; * is the one running
  fishtea use <version>       switch to another installed version (and back — it is one symlink)
  fishtea upgrade [--from <checkout>]
                              install a newer framework beside the current one and switch to it
  fishtea uninstall <version> remove an installed version that is not current
  fishtea update [--dry-run]  bring this application up to the framework without regenerating it
                              [--adopt] start tracking an application made before provenance existed
  fishtea plugin list|info|add|remove|create|promote
                              everything outside the conversation: integrations, design systems, auth
  fishtea ui-assets           regenerate the browser bundle's design-system stylesheet
  fishtea validate            validate spec.json and print section hashes
  fishtea doctor              check the spec, the database, the classifier and the binding
  fishtea derive [--ddl|--tools|--forms]
  fishtea migrate [--allow-destructive]
  fishtea seed                load seed/*.json
  fishtea serve [--host 0.0.0.0] [--port 3000] [--intent lexical|needle] [--strict]
  fishtea headless [--script scripts/walkthrough.json] [--json]
  fishtea tui                 operator console: onboard, edit, run
  fishtea up [--detach]       build and start the stack (ctrl-c stops it)
  fishtea down [-v]           stop and remove it; -v also deletes the data volume
  fishtea stop | start        pause and resume without removing anything
  fishtea ps | logs [service] what is running, and follow its output
  fishtea restart [service]   default: core
  fishtea bench               performance harness against a running stack
  fishtea notify <visitorId> "<text>"

  --app <dir>        application directory (default FISHTEA_APP or cwd)
  --db <url>         Postgres, overriding DATABASE_URL
  --classifier <url> needle pool, overriding CLASSIFIER_URL
  --host / --port    what the core binds (default 0.0.0.0:3000, reachable from other machines)
  --workspace <dir>  where "new" puts applications (default FISHTEA_WORKSPACE, else beside fishtea)

  env: DATABASE_URL, CLASSIFIER_URL, FISHTEA_HOST, FISHTEA_PUBLIC_HOST, PORT, FISHTEA_INTENT,
       FISHTEA_STRICT, FISHTEA_OPERATOR_TOKEN, FISHTEA_WORKSPACE, FISHTEA_APP, FISHTEA_HOME

Where commands run

Every command takes --app <dir>, defaulting to FISHTEA_APP and then to the current directory if it has a spec.json. A generated application wraps these in its own package.json scripts, so bun run dev and fishtea serve are the same thing.