Thank you for your interest in contributing to the Smithery CLI!
-
Clone the repository:
git clone https://github.com/smithery-ai/cli.git cd cli -
Install dependencies:
pnpm install
-
Build the project:
pnpm run build
-
Run tests:
pnpm test
- Create a new branch for your changes
- Make your changes following the code style (enforced by Biome)
- Run
pnpm run checkto lint and format your code - Run
pnpm testto ensure tests pass - Submit a pull request
This project uses Conventional Commits for automated versioning and changelog generation.
| Type | Description | Version Bump |
|---|---|---|
feat |
New feature | Minor |
fix |
Bug fix | Patch |
perf |
Performance improvement | Patch |
docs |
Documentation only | None |
chore |
Maintenance tasks | None |
refactor |
Code refactoring | None |
test |
Adding/updating tests | None |
ci |
CI/CD changes | None |
feat: add support for Claude Desktop on Linux
fix: resolve config file parsing error on Windows
docs: update installation instructions
chore: update dependenciesFor breaking changes, add ! after the type or include BREAKING CHANGE: in the commit body:
feat!: change default config location
BREAKING CHANGE: Config files are now stored in ~/.smithery instead of ~/.config/smitheryReleases are fully automated using Release Please.
- Merge PRs to main - Use conventional commit messages
- Release PR created automatically - Release Please creates a PR with:
- Version bump in
package.json - Updated
CHANGELOG.md
- Version bump in
- Merge the Release PR - This triggers:
- A GitHub Release with release notes
- Automatic npm publish
If the automated publish fails, you can manually trigger the publish workflow:
- Go to Actions > Publish NPM
- Click "Run workflow"
- Select the main branch and run
- TypeScript with strict mode
- Biome for linting and formatting
- Run
pnpm run checkbefore committing
Open an issue or reach out to the maintainers.