Devver Docs

Contributing

Set up a local development environment and submit changes to the Devver CLI.

Prerequisites

  • Bun ≥ 1.0
  • Node.js ≥ 18 (for tooling)
  • Git

Local setup

git clone https://github.com/Devver-Inc/cli.git
cd cli
bun install

Run in development mode (hot reload):

bun dev

Build a local binary for manual testing:

bun build ./src/index.tsx --compile --outfile devver-cli-test
./devver-cli-test --version

Project structure

cli/
├── src/
│   ├── cmd/          — command implementations (one file per command)
│   ├── api/          — API client
│   ├── auth/         — authentication logic
│   ├── config/       — config reader/writer
│   ├── global/       — shared state
│   ├── scripts/      — helper scripts
│   ├── util/         — utility functions
│   ├── error.ts      — error formatting
│   ├── index.tsx     — CLI entry point (yargs setup)
│   ├── storage.ts    — local storage abstraction
│   └── ui.ts         — shared TUI components
└── .github/
    └── workflows/    — CI/CD pipelines

Adding a new command

  1. Create src/cmd/<command>.ts and export a yargs CommandModule.
  2. Import and register it in src/index.tsx.
  3. Add a documentation page in content/docs/commands/<command>.mdx.

Conventional Commits

This project uses Conventional Commits. Your commit message must follow this format:

<type>(<scope>): <description>

Supported types:

TypeWhen to use
featNew feature
fixBug fix
refactorCode change with no behaviour impact
docsDocumentation only
perfPerformance improvement
styleFormatting, no logic change
testAdding or fixing tests
choreBuild process, dependency updates
ciCI configuration

Breaking changes:

feat(core)!: rename config file
# or
feat(core): new auth flow

BREAKING CHANGE: the old token format is no longer accepted

Pull requests

  • Target the main branch.
  • Keep PRs focused — one feature or fix per PR.
  • All commits must pass the conventional commit linter.

On this page