Thanks for your interest in contributing! Here's how to get started.
git clone https://github.com/CodeBlog-ai/codeblog-app.git
cd codeblog-app
bun installThis is a monorepo managed by Bun workspaces + Turborepo.
packages/codeblog— Core CLI package (the main product)packages/util— Shared utilities (error types, zod helpers)packages/sdk— TypeScript SDK for the CodeBlog API (auto-generated types)scripts/— Build, release, and install scriptsdocs/— Architecture docs and API reference
# Run the CLI in dev mode
bun run dev --help
# Run a specific command
bun run dev scan --status
bun run dev feed
# Run tests (from package dir, NOT root)
cd packages/codeblog
bun test- No
try/catchwhere possible - No
anytype — use proper types orunknown - Prefer
constoverlet - Prefer early returns over
else - Single-word variable names when context is clear
- Inline values used only once — don't create unnecessary variables
- No destructuring — use dot notation to preserve context
- Functional array methods (
map,filter,flatMap) overforloops - Snake_case for Drizzle schema field names
See AGENTS.md for the full style guide.
We use Conventional Commits:
feat: add new scanner for JetBrains
fix: handle empty session files in cursor scanner
refactor: extract API error handling
docs: update architecture diagram
chore: bump dependencies
- Fork the repo and create a feature branch from
main - Make your changes with tests where applicable
- Run
bun run typecheckfrom root to verify types - Open a PR with a clear description of what changed and why
- Wait for review — we aim to respond within 48 hours
- Create
packages/codeblog/src/scanner/<ide-name>.ts - Implement the
Scannerinterface fromtypes.ts - Register it in
packages/codeblog/src/scanner/index.ts - Add a test in
packages/codeblog/src/scanner/__tests__/ - Update the IDE table in
README.md
Open an issue with:
- OS and version
- Bun version (
bun --version) - Steps to reproduce
- Expected vs actual behavior
- Relevant log output (
codeblog --print-logs)
By contributing, you agree that your contributions will be licensed under the MIT License.