Contributing to Edgee

August 11, 2026 · View on GitHub

Thank you for considering a contribution. This CLI is Apache 2.0 licensed and open source, and we welcome bug reports, feature requests, and pull requests.

Scope: what belongs in this repo

This repository ships the edgee command-line tool — launching coding agents through Edgee, authentication, profiles, settings, session stats, the statusline integration, and the local relay for GUI apps. It is the only open-source Edgee repository, and it will stay open source.

The gateway — routing, Strategies, token compression, metering, billing, observability — is a separate, Edgee-operated service and is not built from this repo. If your idea is about how requests are routed or compressed, it belongs there, not here. Self-hosting the gateway is not supported.

Good contributions here: new launch targets, platform fixes (especially Windows and Linux), better CLI ergonomics and error messages, statusline and alias improvements, docs.

AGENTS.md has the fuller picture: product context, CLI surface, repo map, and conventions. It's worth a read before your first PR.

Prerequisites

  • Rust stable toolchain (1.85 or later). Install via rustup.
  • cargo is bundled with Rust.
  • On Linux you may need pkg-config and libssl-dev (or equivalent) for the TLS backend.
  • Optional: a Nix + direnv setup works out of the box — flake.nix provides a dev shell with the full toolchain.

Clone and build

git clone https://github.com/edgee-ai/edgee
cd edgee
cargo build

For a release (optimized) build:

cargo build --release

Install the CLI locally:

cargo install --path .
edgee --version

Or, to dogfood a local build without replacing an installed release, make install symlinks target/release/edgee into ~/.local/bin.

Run the CLI in development

# Run directly with cargo (no install step required)
cargo run -- launch claude
cargo run -- stats

Tests

# All tests
cargo test --all

# A single test by name
cargo test my_test_name

# With stdout visible
cargo test --all -- --nocapture

Lint and format

# Format all code in place
cargo fmt --all

# Lint (must be clean before opening a PR)
cargo clippy --all-targets

CI runs clippy with -D warnings, so any warning fails the build.

Pre-commit gate

All three checks must pass before committing:

cargo fmt --all && cargo clippy --all-targets && cargo test --all

Pull request process

  1. Fork the repo and create a branch from main. Use the naming scheme feat/<topic>, fix/<topic>, or chore/<topic>.
  2. Make your changes and ensure the pre-commit gate passes locally.
  3. Open a PR against main with a concise, imperative title (e.g. Add Kilo Code launch target).
  4. Reference the relevant GitHub issue in the PR description (e.g. Closes #42).
  5. A maintainer will review within a few business days. Small, focused PRs get reviewed fastest.

For significant new features or architectural changes, open an issue first so we can discuss the approach before you invest time building.

Adding a launch target

edgee launch <target> names are not free-form: target names, provider keys, and transport are three separate concerns with rules. Read src/commands/launch/README.md before adding an agent — it has the naming convention, the current catalogue, a step-by-step checklist, and the anti-patterns to avoid.

Tool-result trimming strategies

Tool-output trimmers live in the gateway repo under tool-result-trimming/. See tool-result-trimming/README.md for how to add a new strategy.

Repository layout

See the Repository layout section in the README for the source tree and purpose table.

License

By contributing you agree that your work will be licensed under the Apache License 2.0. See LICENSE.