Quay is a Bun + TypeScript CLI. It can be run from source during development or compiled into a single Bun binary for deployment.
bun install
bun test
bun run typecheck
bun run build
./dist/quay --versionbun run build builds the Admin UI workspace, regenerates the embedded
migrations, ticket schema, UI assets, and version stamp, then compiles
dist/quay. Local builds report dev+<sha>; release builds set
QUAY_VERSION to the release tag so quay --version reports <tag>+<sha>.
For development:
bun run quay -- --version
bun run quay -- task listThe extra -- separates Bun script arguments from Quay arguments.
The compiled binary does not require Bun on the target host, but Quay shells out to external tools depending on the workflow:
git: required for repo fetches, branches, and worktrees.tmux: required byquay tickwhen spawning workers.gh: required for PR/CI polling and PR cleanup paths.- The configured worker command: default is
claude --permission-mode bypassPermissions < {prompt_file}. - Any command used by a repo's
install_cmd.
For GitHub, Slack, Linear, worker credential, and scheduler environment setup, see External Services Setup.
quay --version short-circuits before database, config, and migration
setup. quay validate-ticket skips the dispatcher's adapter wiring for
fast spawns; it opens the DB lazily only when the ticket payload's repo
has per-repo tag vocab configured (otherwise it degrades to no
enforcement).
By default Quay stores data in ~/.quay. Override it at runtime with:
export QUAY_DATA_DIR=/var/lib/quayThe data directory contains:
quay.dbrepos/by default, unlessrepos_rootis configured.worktrees/by default, unlessworktree_rootis configured.artifacts/tick.lockby default, unlesstick_lock_pathis configured.
First use creates Quay-owned directories and applies embedded migrations. Migrations are idempotent.
The README includes a placeholder release-download path for v0.1.0. Until a
release is tagged and binaries are published, use the build-from-source path.
The current main command dispatcher does not provide a full quay --help
surface. Use CLI Reference for the current command
inventory.