CodeBuddy is open source under the MIT license. Contributions are welcome — bug fixes, new features, documentation improvements, and translations.
Repository: github.com/olasunkanmi-SE/codebuddy
Getting started
Sección titulada «Getting started»Prerequisites
Sección titulada «Prerequisites»- Node.js 20+
- Git
- VS Code, Cursor, or any compatible editor (VS Code Insiders recommended for extension development)
# Fork and clonegit clone https://github.com/<your-username>/codebuddy.gitcd codebuddy
# Install dependenciesnpm ci
# Install webview dependenciescd webviewUi && npm ci && cd ..
# Compilenpm run compile
# Build webviewnpm run build:webviewDevelopment workflow
Sección titulada «Development workflow»# Watch for TypeScript changesnpm run watch
# In a separate terminal, watch for webview changesnpm run dev:webviewPress F5 in your editor to launch the Extension Development Host with CodeBuddy loaded.
Project structure
Sección titulada «Project structure»| Directory | Contents |
|---|---|
src/ | Extension source (TypeScript) |
src/agents/ | LangGraph agent, subagents, tool providers |
src/services/ | Core services (indexing, testing, embedding, etc.) |
src/webview-providers/ | Webview ↔ extension message handlers |
src/workers/ | Worker threads (AST analysis, embedding) |
src/infrastructure/ | Logger, telemetry, observability |
src/MCP/ | MCP protocol integration |
webviewUi/ | Webview frontend (separate npm project) |
skills/ | Built-in skill definitions (SKILL.md files) |
l10n/ | Translation bundles |
.github/ | CI workflows, issue/PR templates |
Available scripts
Sección titulada «Available scripts»| Script | Description |
|---|---|
npm run build | Full build: compile + format + webview + package |
npm run compile | TypeScript compilation |
npm run watch | Watch mode for TypeScript |
npm run lint | ESLint check |
npm run fix | ESLint auto-fix |
npm run format | Prettier formatting |
npm test | Run extension tests |
npm run test:coverage | Tests with coverage report (text-summary, lcov, json-summary) |
npm run build:webview | Build webview frontend |
npm run dev:webview | Webview dev server |
npm run package | Package with esbuild (production) |
Branching strategy
Sección titulada «Branching strategy»development— active development branch. Create feature branches from here.main— stable releases. PRs fromdevelopment→mainfor releases.
Pull request process
Sección titulada «Pull request process»- Fork the repository
- Create a branch from
development:git checkout -b feature/my-feature development - Make your changes
- Run
npm run lint && npm run compile && npm test - Push and open a PR against
development
PR checklist
Sección titulada «PR checklist»- Description of what changed and why
- Type: bug fix / feature / breaking change / refactor / docs / CI
- Tests added or updated
- Linting passes
Coding standards
Sección titulada «Coding standards»- TypeScript strict mode — all code is type-checked with
strict: true - ESLint — run
npm run lintbefore committing;npm run fixfor auto-fixes - Prettier — run
npm run formatto format all files - Naming — use
camelCasefor variables/functions,PascalCasefor classes/types,kebab-casefor file names - Services — follow the dependency injection pattern via
ServiceFactory. Register new services in the factory - Workers — use the
parentPort.postMessage()/onmessagepattern. Keep worker files insrc/workers/ - Error handling — use structured error types. Don’t silently swallow errors
- Security — never expose API keys in logs or webview messages. All external inputs must be validated
Testing
Sección titulada «Testing»# Run all testsnpm test
# Run with coveragenpm run test:coverageTests use the built-in extension testing framework. Place test files alongside source files with a .test.ts suffix, or in a __tests__/ directory.
When adding a new feature:
- Add unit tests for the service layer
- Add integration tests if the feature interacts with external systems (mock them)
- Ensure existing tests still pass — CI will block the PR if they don’t
Documentation
Sección titulada «Documentation»This documentation site lives in a separate repository: codebuddy-docs. To contribute docs changes:
git clone https://github.com/olasunkanmi-SE/codebuddy-docs.gitcd codebuddy-docsnpm cinpm run devDocs are built with Astro Starlight. Markdown files are in src/content/docs/.
Reporting issues
Sección titulada «Reporting issues»Open a GitHub Issue with:
- Environment: OS, editor and version, CodeBuddy version
- Steps to reproduce: minimal steps to trigger the bug
- Expected vs actual behavior
- Logs: copy relevant output from the Output panel → CodeBuddy
For feature requests, describe the use case and the proposed solution.
License
Sección titulada «License»CodeBuddy is licensed under the MIT License. By contributing, you agree that your contributions will be licensed under the same terms.
- Code compiles without errors
Templates
Sección titulada «Templates»The repository provides templates for:
- Bug reports — structured form with repro steps, expected/actual, version
- Feature requests — problem, proposed solution, alternatives, context
- Pull requests — description, type checklist, testing checklist
CI pipeline
Sección titulada «CI pipeline»Every PR triggers a matrix build on Ubuntu, Windows, and macOS:
- Checkout → generate diff
- Node 20 setup →
npm ci - Security audit
- Lint → compile → format
- Build webview (
npm ci && lint && buildinwebviewUi/) - Compile tests → run tests (xvfb on Linux)
- Coverage upload → 30% minimum line coverage threshold
- Package
Tests run under xvfb-run on Linux for headless extension integration testing.
Release process
Sección titulada «Release process»Releases are triggered by pushing a version tag:
git tag v4.3.0git push origin v4.3.0The deploy pipeline:
- Builds and packages a
.vsixfile - Publishes to the VS Code Marketplace and Open VSX Registry
- Publishes to the Open VSX Registry
- Creates a GitHub Release with the
.vsixattachment
Dependencies
Sección titulada «Dependencies»Dependabot is configured for automatic dependency updates:
| Scope | Frequency | PR limit |
|---|---|---|
| Root npm | Weekly | 10 |
webviewUi/ npm | Weekly | 5 |
| GitHub Actions | Monthly | — |
Code of conduct
Sección titulada «Code of conduct»The project follows a standard Code of Conduct. See CODE_OF_CONDUCT.md in the repository.
Security
Sección titulada «Security»To report security vulnerabilities, see SECURITY.md in the repository. Do not open public issues for security concerns.