Codeberg CLI!
https://pypi.org/project/codeberg-cli/
- Python 99.8%
- Just 0.2%
|
ThatXliner
1acd160bf3
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .github/workflows | remove codecov | |
| src/codeberg_cli | ✨ feat(issue): add reactions, dependencies, and attachments | |
| tests | ✨ feat(issue): add reactions, dependencies, and attachments | |
| .gitignore | updated .gitignore | |
| .python-version | Initial project scaffold for cb CLI | |
| Justfile | rename! | |
| LICENSE | License to MIT | |
| pyproject.toml | 🔖 chore(release): bump version to 0.5.0 | |
| README.md | 📝 docs: mark newly implemented features in comparison matrix | |
| uv.lock | fix(client): follow redirects and surface clear Actions errors | |
cb — A Codeberg CLI
PyPI - Python Version PyPI PyPI - License
cb is a CLI for Codeberg (a Forgejo instance) — think gh for Codeberg. It also works with any Forgejo instance. Built with Xclif.
# One-time setup
cb auth login
# Work with repos, issues, PRs, releases
cb repo list
cb issue create --title "Fix the thing"
cb pr create --base main --head fix
cb release create v0.2.0
Install
pip install codeberg-cli # or: uv tool install codeberg-cli
Or from source:
git clone https://codeberg.org/ThatXliner/codeberg-cli.git
cd cb
uv tool install .
Quickstart
# Authenticate (tokens at https://codeberg.org/user/settings/applications)
cb auth login
# Who am I?
cb auth whoami
# List your repos
cb repo list
# Clone one
cb repo clone ThatXliner/cb
# Open an issue
cb issue create --title "suggestion" --body "what about..."
# See everything you can do
cb --help
Config
Token stored in $XDG_CONFIG_HOME/codeberg-cli/config.toml (managed by cb auth login / cb auth logout).
View or change config:
cb config path # Show config file location
cb config get # Print all config values
cb config set base_url "https://codeberg.org/api/v1" # Codeberg (default)
cb config set base_url "https://git.example.com/api/v1" # Self-hosted Forgejo
Comparison
Here's how cb stacks up against other Forgejo CLI tools. Last updated: June 2026.
TL;DR: cb is the most feature-complete Forgejo CLI — by a wide margin.
| cb (this) | fj (forgejo-cli) | berg (codeberg-cli) | tea (gitea/tea) | gcli | |
|---|---|---|---|---|---|
| Language | Python | Rust | Rust | Go | C |
| Install | pip install codeberg-cli |
prebuilt binaries/Cargo | cargo install codeberg-cli |
brew install tea |
brew install gcli |
| Multi-instance | cb config set base_url |
-H <instance> |
BERG_BASE_URL |
tea login add |
-t forgejo |
Issues
| cb | fj | berg | tea | gcli | |
|---|---|---|---|---|---|
| Create | ✅ | ✅ | ✅ | ✅ | ✅ |
| List | ✅ | ✅ | ✅ | ✅ | ✅ |
| View | ✅ | ✅ | ✅ | ✅ | ✅ |
| Close | ✅ | ✅ | ✅ | ✅ | ✅ |
| Reopen | ✅ | — | ✅ | ✅ | ✅ |
| Comment | ✅ | ✅ | ✅ | ✅ | ✅ |
| Edit | ✅ | ✅ | ✅ | ✅ | ✅ |
| Delete | ✅ | — | — | — | — |
| Pin/Unpin | ✅ | — | — | ✅ | — |
| Search | ✅ | ✅ | — | ✅ | — |
| Attachments | ✅ | — | — | ✅ | — |
| Labels (manage on issue) | ✅ | — | — | ✅ | ✅ |
| Reactions | ✅ | — | — | — | — |
| Subscriptions | ✅ | — | — | ✅ | — |
| Tracked times | ✅ | — | — | ✅ | ✅ |
| Dependencies | ✅ | — | — | — | — |
| Deadline | — | — | — | ✅ | — |
| Templates | — | ✅ | — | — | — |
Pull Requests
| cb | fj | berg | tea | gcli | |
|---|---|---|---|---|---|
| Create | ✅ | ✅ | ✅ | ✅ | ✅ |
| List | ✅ | ✅ | ✅ | ✅ | ✅ |
| View | ✅ | ✅ | ✅ | ✅ | ✅ |
| Merge | ✅ | ✅ | ✅ | ✅ | ✅ |
| Close | ✅ | ✅ | ✅ | ✅ | ✅ |
| Reopen | ✅ | — | ✅ | ✅ | ✅ |
| Comment | ✅ | ✅ | ✅ | ✅ | ✅ |
| Edit | ✅ | ✅ | ✅ | ✅ | — |
| Checkout | ✅ | ✅ | ✅ | ✅ | ✅ |
| Commits | ✅ | ✅ | — | — | ✅ |
| Files/changed | ✅ | ✅ | — | — | — |
| Reviews | ✅ | ✅ | — | ✅ | ✅ |
| Diff/Patch | ✅ | ✅ | — | — | ✅ |
| Update branch | ✅ | — | — | — | — |
| AGit (no-fork) | — | ✅ | — | — | — |
| CI status | ✅ | ✅ | — | — | — |
| Templates | — | ✅ | — | — | — |
| Auto-merge | — | — | — | ✅ | — |
Releases
| cb | fj | berg | tea | gcli | |
|---|---|---|---|---|---|
| Create | ✅ | ✅ | ✅ | ✅ | ✅ |
| List | ✅ | ✅ | ✅ | ✅ | ✅ |
| View | ✅ | ✅ | ✅ | ✅ | — |
| Upload assets | ✅ | — | ✅ | — | ✅ |
| Delete | ✅ | — | — | ✅ | ✅ |
| Edit | ✅ | — | — | ✅ | — |
| Latest | ✅ | — | — | ✅ | — |
| By tag | ✅ | — | — | ✅ | — |
Repositories
| cb | fj | berg | tea | gcli | |
|---|---|---|---|---|---|
| Create | ✅ | ✅ | ✅ | ✅ | ✅ |
| List | ✅ | ✅ | ✅ | ✅ | ✅ |
| View | ✅ | ✅ | ✅ | ✅ | ✅ |
| Clone | ✅ | ✅ | ✅ | ✅ | — |
| Fork | ✅ | ✅ | ✅ | ✅ | ✅ |
| Delete | ✅ | — | ✅ | ✅ | — |
| Star | ✅ | ✅ | ✅ | ✅ | — |
| Unstar | ✅ | ✅ | ✅ | ✅ | — |
| Watch/Unwatch | ✅ | — | — | ✅ | — |
| Edit | ✅ | ✅ | — | ✅ | — |
| Migrate/Mirror | ✅ | ✅ | — | ✅ | — |
| Branches | ✅ | — | — | ✅ | — |
| Topics | ✅ | — | — | ✅ | — |
| Languages | ✅ | — | — | — | — |
| Hooks | ✅ | — | — | ✅ | — |
| Archive | ✅ | — | — | ✅ | — |
| Commits | ✅ | — | — | — | — |
| Contents | ✅ | — | — | ✅ | — |
| Collaborators | ✅ | — | — | ✅ | — |
| Transfer | ✅ | — | — | ✅ | — |
| Wikis | ✅ | — | — | ✅ | — |
| Push mirrors | ✅ | — | — | ✅ | — |
| Search | ✅ | — | — | ✅ | — |
Labels
| cb | fj | berg | tea | gcli | |
|---|---|---|---|---|---|
| Create | ✅ | — | ✅ | ✅ | ✅ |
| List | ✅ | — | ✅ | ✅ | ✅ |
| Delete | ✅ | — | ✅ | ✅ | — |
| Edit | ✅ | — | — | ✅ | — |
Milestones
| cb | fj | berg | tea | gcli | |
|---|---|---|---|---|---|
| Create | ✅ | — | ✅ | ✅ | — |
| List | ✅ | — | ✅ | ✅ | ✅ |
| View | ✅ | — | — | ✅ | — |
| Delete | ✅ | — | — | ✅ | — |
| Edit | ✅ | — | — | ✅ | — |
Notifications
| cb | fj | berg | tea | gcli | |
|---|---|---|---|---|---|
| List | ✅ | — | ✅ | ✅ | ✅ |
| Mark read | ✅ | — | — | ✅ | — |
| Thread details | ✅ | — | — | — | — |
| Per-repo | ✅ | — | — | ✅ | — |
Extra
| cb | fj | berg | tea | gcli | |
|---|---|---|---|---|---|
| Raw API | ✅ | — | ✅ | — | ✅ |
| User profiles | ✅ | ✅ | — | — | — |
| SSH keys | ✅ | ✅ | — | ✅ | ✅ |
| GPG keys | ✅ | ✅ | — | — | — |
| Org/team mgmt | ✅ | ✅ | — | ✅ | — |
| Forgejo Actions | ✅ | ✅ | — | — | — |
| Shell completions | ✅ (auto via xclif) | ✅ | ✅ | ✅ | — |
| JSON output | ✅ (via --json) |
— | ✅ | ✅ | — |
| Non-interactive | auto (no prompts) | — | ✅ | ✅ | — |
| Config management | ✅ | — | ✅ | — | — |
| Web browser flag | on view commands | — | — | ✅ | — |
Built in Python with Xclif for a clean, hackable codebase. If something's missing, open an issue!
License
MIT