Sidekick (Beta)
Your agentic CLI developer.
Overview
Sidekick is an agentic CLI-based AI tool inspired by Claude Code, Copilot, Windsurf and Cursor. It's meant to be an open source alternative to these tools, providing a similar experience but with the flexibility of using different LLM providers (Anthropic, OpenAI, Google Gemini) while keeping the agentic workflow.
Sidekick is currently in beta and under active development. Please report issues or share feedback!
Features
- No vendor lock-in. Use whichever LLM provider you prefer.
- MCP support
- Use /undo when AI breaks things.
- Easily switch between models in the same session.
- JIT-style system prompt injection ensures Sidekick doesn't lose the plot.
- Per-project guide. Adjust Sidekick's behavior to suit your needs.
- CLI-first design. Ditch the clunky IDE.
- Cost and token tracking.
- Per command or per session confirmation skipping.
Roadmap
- Tests 😅
- More LLM providers, including Ollama
Quick Start
Install Sidekick.
pip install sidekick-cli
On first run, you'll be asked to configure your LLM providers.
sidekick
Configuration
After initial setup, Sidekick saves a config file to ~/.config/sidekick.json. You can open and
edit this file as needed. Future updates will make editing easier directly from within Sidekick.
MCP Support
Sidekick supports Model Context Protocol (MCP) servers. You can configure MCP servers in your ~/.config/sidekick.json file:
{
"mcpServers": {
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
MCP servers extend the capabilities of your AI assistant, allowing it to interact with additional tools and data sources. Learn more about MCP at modelcontextprotocol.io.
Available Commands
/help- Show available commands/yolo- Toggle "yolo" mode (skip tool confirmations)/clear- Clear message history/compact- Summarize message history and clear old messages/model- List available models/model <num>- Switch to a specific model (by index)/undo- Undo most recent changes/dump- Show current message history (for debugging)exit- Exit the application
Customization
Sidekick supports the use of a "guide". This is a SIDEKICK.md file in the project root that contains
instructions for Sidekick. Helpful for specifying tech stack, project structure, development
preferences etc.
Telemetry
Sidekick uses Sentry for error tracking and usage analytics. You can disable this by
starting with the --no-telemetry flag.
sidekick --no-telemetry
Requirements
- Python 3.10 or higher
- Git (for undo functionality)
Installation
Using pip
pip install sidekick-cli
From Source
- Clone the repository
- Install dependencies:
pip install .(orpip install -e .for development)
Development
# Install development dependencies
make install
# Run linting
make lint
# Run tests
make test
Release Process
When preparing a new release:
-
Update version numbers in:
pyproject.tomlsrc/sidekick/constants.py(APP_VERSION)
-
Commit the version changes:
git add pyproject.toml src/sidekick/constants.py git commit -m "chore: bump version to X.Y.Z"
-
Create and push a tag:
git tag vX.Y.Z git push origin vX.Y.Z
-
Create a GitHub release:
gh release create vX.Y.Z --title "vX.Y.Z" --notes "Release notes here"
-
Merge to main branch and push to trigger PyPI release (automated)
Commit Convention
This project follows the Conventional Commits specification for commit messages:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringperf:- Performance improvementstest:- Test additions or modificationschore:- Maintenance tasks (version bumps, etc.)build:- Build system changesci:- CI configuration changes
Links
License
MIT
Metadata
Release files for sidekick-cli 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| sidekick_cli-0.5.1.tar.gz | 47.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| sidekick_cli-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 109.2 kB
Release files / sidekick_cli-0.5.1.tar.gz
| Download URL | sidekick_cli-0.5.1.tar.gz |
|---|---|
| Size | 47.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7b71a5a6f77677dfe3fe9d06a8bc88d7743fddda72e451a28def3c0b1cb93ef1
|
|
BLAKE2b-256 checksum How to use checksums |
f5a0cd14e4b6b84d3b70703b300dddefa0bfdf9172ffd42e8bf3457ea1a3a49c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|
Release files / sidekick_cli-0.5.1-py3-none-any.whl
| Download URL | sidekick_cli-0.5.1-py3-none-any.whl |
|---|---|
| Size | 61.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4623e65d04e733ff8afd228d494a3080c2a5555dc54302739ad074c144808599
|
|
BLAKE2b-256 checksum How to use checksums |
db2b3b11f39b48735b503a957052957efdbb505439a875424bf13abf77a2941a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.12.9
|