Skip to content

Latest commit

 

History

History
118 lines (79 loc) · 2.21 KB

File metadata and controls

118 lines (79 loc) · 2.21 KB

Contributing to Ohno

Thanks for your interest in contributing to Ohno! This guide covers everything you need to get started.

Prerequisites

  • Node.js >= 18.0.0
  • npm >= 10.0.0
  • Git

Getting Started

  1. Fork and clone the repo:
git clone https://github.com/<your-username>/ohno.git
cd ohno
  1. Install dependencies:
cd packages
npm install
  1. Build all packages:
make build
  1. Run tests:
make test

Project Structure

Ohno is a TypeScript monorepo managed with Turborepo:

packages/
  ohno-core/   # Shared database layer (sql.js/WebAssembly SQLite)
  ohno-mcp/    # MCP server (Model Context Protocol tools)
  ohno-cli/    # CLI tool and visual kanban board
  • ohno-core is the shared foundation. Changes here affect both the MCP server and CLI.
  • ohno-mcp exposes task management as MCP tools for AI agents (e.g., Claude Code).
  • ohno-cli provides shell commands and the ohno serve kanban board.

Development Workflow

Start development mode (watches for changes and rebuilds):

make dev

Build and test:

make build
make test

Clean build artifacts:

make clean

Making Changes

  1. Create a branch from master:
git checkout -b my-feature
  1. Make your changes. Keep commits focused and well-described.

  2. Ensure tests pass:

make test
  1. Push your branch and open a pull request against master.

Code Conventions

  • TypeScript throughout. All packages use strict TypeScript.
  • Vitest for testing.
  • No native dependencies. Ohno uses sql.js (WebAssembly) instead of native SQLite bindings to ensure zero-install compatibility via npx.
  • Keep the CLI and MCP outputs consistent - both read from the same SQLite database and should behave identically.

What to Contribute

  • Bug fixes
  • New CLI commands or MCP tools
  • Improvements to the kanban board UI
  • Documentation improvements
  • Test coverage

Reporting Issues

Open an issue on GitHub with:

  • Steps to reproduce
  • Expected vs actual behavior
  • Node.js version and OS

License

By contributing, you agree that your contributions will be licensed under the MIT License.