plano/CONTRIBUTING.md
Salman Paracha 2941392ed1
Adding support for wildcard models in the model_providers config (#696)
* cleaning up plano cli commands

* adding support for wildcard model providers

* fixing compile errors

* fixing bugs related to default model provider, provider hint and duplicates in the model provider list

* fixed cargo fmt issues

* updating tests to always include the model id

* using default for the prompt_gateway path

* fixed the model name, as gpt-5-mini-2025-08-07 wasn't in the config

* making sure that all aliases and models match the config

* fixed the config generator to allow for base_url providers LLMs to include wildcard models

* re-ran the models list utility and added a shell script to run it

* updating docs to mention wildcard model providers

* updated provider_models.json to yaml, added that file to our docs for reference

* updating the build docs to use the new root-based build

---------

Co-authored-by: Salman Paracha <salmanparacha@MacBook-Pro-342.local>
2026-01-28 17:47:33 -08:00

4.1 KiB

Contribution

We would love feedback on our Roadmap and we welcome contributions to Plano! We would love feedback on our Roadmap and we welcome contributions to Plano! Whether you're fixing bugs, adding new features, improving documentation, or creating tutorials, your help is much appreciated.

How to Contribute

1. Fork the Repository

Fork the repository to create your own version of Plano: Fork the repository to create your own version of Plano:

2. Clone Your Fork

Once you've forked the repository, clone it to your local machine (replace <your-username> with your GitHub username):

$ git clone git@github.com:<your-username>/plano.git
$ cd plano

3. Add Upstream Remote

Add the original repository as an upstream remote so you can keep your fork in sync:

$ git remote add upstream git@github.com:katanemo/plano.git

To sync your fork with the latest changes from the main repository:

$ git fetch upstream
$ git checkout main
$ git merge upstream/main

4. Install Prerequisites

Install uv (Python package manager for the planoai CLI):

$ curl -LsSf https://astral.sh/uv/install.sh | sh

Install pre-commit hooks:

Pre-commit hooks help maintain code quality by running automated checks before each commit. Install them with:

$ pip install pre-commit
$ pre-commit install

The pre-commit hooks will automatically run:

  • YAML validation
  • Code formatting checks (Rust with cargo fmt, Python with black)
  • Linting checks (Rust with cargo clippy)
  • Rust unit tests

5. Setup the planoai CLI

The planoai CLI is used to build, run, and manage Plano locally:

$ cd cli
$ uv sync

This creates a virtual environment in .venv and installs all dependencies.

Optionally, install planoai globally in editable mode:

$ git clone https://github.com/katanemo/plano.git
$ cd plano

Now you can use planoai commands from anywhere, or use uv run planoai from the cli directory.

6. Create a Branch

Use a descriptive name for your branch (e.g., fix-bug-123, add-feature-x).

$ git checkout -b <your-branch-name>

7. Make Your Changes

Make your changes in the relevant files. If you're adding new features or fixing bugs, please include tests where applicable.

8. Test Your Changes Locally

Run Rust tests:

$ cd crates
$ cargo test

For library tests only:

$ cargo test --lib

Run Python CLI tests:

$ cd cli
$ uv run pytest

Or with verbose output:

$ uv run pytest -v

Run pre-commit checks manually:

Before committing, you can run all pre-commit checks manually:

cd plano
cargo test

6. Push changes, and create a Pull request

Go back to the original Plano repository, and you should see a "Compare & pull request" button. Click that to submit a Pull Request (PR). In your PR description, clearly explain the changes you made and why they are necessary. Go back to the original Plano repository, and you should see a "Compare & pull request" button. Click that to submit a Pull Request (PR). In your PR description, clearly explain the changes you made and why they are necessary.

We will review your pull request and provide feedback. Once approved, your contribution will be merged into the main repository!

Contribution Guidelines

  • Ensure that all existing tests pass.
  • Write clear commit messages.
  • Add tests for any new functionality.
  • Follow the existing coding style (enforced by pre-commit hooks).
  • Update documentation as needed.
  • Pre-commit hooks must pass before committing.

To get in touch with us, please join our discord server. We will be monitoring that actively and offering support there.