Skip to content

webbhalsa/dave-cli2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dave

A terminal UI for DAVE, Kry's deployment orchestration platform. Browse projects, releases, deployments, and manage deployment mappings — all from the command line.

image

Installation

Upgrading from the old Python-based dave CLI? Uninstall it first to avoid conflicts:

pip3 uninstall dave
brew tap webbhalsa/tap
brew install dave

To upgrade to the latest version:

brew upgrade dave

Usage

Running dave with no arguments opens the interactive TUI. Passing any argument switches to CLI mode.

Authentication

dave auth login    # log in via browser (OAuth device flow)
dave auth status   # show who you're logged in as
dave auth logout   # remove the stored session

Authentication is implicit — any command that requires it will prompt you to log in if your session is missing or expired. You can also authenticate with an API key by setting DAVE_API_KEY.

Projects

dave projects list
dave projects get <project-id>
dave projects create <project-id> --repository <org/repo> --service-name <name>
dave projects delete <project-id> --yes

Environments

dave environments list
dave environments get <env-id>
dave environments create <env-id> --type <type-id>
dave environments delete <env-id> --yes
dave environments types                        # list available environment types

Attributes

dave environments attrs list <env-id>
dave environments attrs set <env-id> key=value [key=value ...]
dave environments attrs delete <env-id> <key> [key ...]

Releases

dave releases list <project-id> [--branch <branch>] [--limit 20]
dave releases get <project-id> <release-id>

Deployments

dave deployments list <project-id> [--environment <env-id>] [--limit 20]
dave deployments get <project-id> <deployment-id>
dave deployments create <project-id> --environment <env-id> --release <release-id>
dave deployments wait <project-id> <deployment-id> [--interval 10] [--timeout 600]

deployments wait polls until the deployment reaches a terminal state (success, failure, error, etc.) and exits 0 on success, 1 on failure. Useful for CI/CD pipelines and AI agents.

Deployment mappings

dave mappings list <project-id> [--interpolate]
dave mappings create <project-id> --environment <env-id> --branch <branch> [--auto-deploy]
dave mappings update <project-id> <mapping-id> --branch <branch> [--auto-deploy]
dave mappings delete <project-id> <mapping-id> --yes

Builds

dave build dispatch <project-id> --ref <branch-or-sha>

Global flags

Flag Short Description
--json -j Output as JSON instead of a table
--help -h Help for any command

Exit codes

Code Meaning
0 Success
1 General error
2 Authentication error
3 Resource not found

Update notifications

If a newer version is available, a banner is printed to stderr after the command output:

Update available: v1.2.3 → v1.3.0  Run: brew upgrade webbhalsa/tap/dave

Releasing a new version

  1. Make sure your changes are merged to main.
  2. Add a changelog entry to the top of internal/changelog/entries.json:
    {
      "version": "v1.2.3",
      "date": "YYYY-MM-DD",
      "changes": [
        "Short description of what changed",
        "Another change"
      ]
    }
    This is shown to users as a "What's new" splash screen on first launch after upgrading. The release will fail if the entry is missing.
  3. Commit and tag:
    git add internal/changelog/entries.json
    git commit -m "release v1.2.3"
    git tag v1.2.3
    git push origin main --tags
  4. The Release workflow will automatically build binaries for macOS and Linux and publish a GitHub Release. The Homebrew formula in webbhalsa/homebrew-tap will be updated automatically.

Tags must follow semver and start with v (e.g. v1.2.3).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages