For deeper workflows and package-specific details, see Development Guide.
- Bun
- platform tooling required by the app you are working on (for example Tauri/mobile toolchains)
git clone https://github.com/nitishxyz/otto.git
cd otto
bun installbun lint
bun test
bun run typecheck
bun run compilebun run dev:cli
bun run --filter @ottocode/tui dev
bun run dev:web
bun run dev:desktop
bun run --filter @ottocode/server dev
bun run --filter @ottocode/sdk devCurrent sst.config.ts wires:
infra/scriptinfra/landinginfra/preview-apiinfra/preview-webinfra/og
Commands:
bun sst dev
bun sst deploy --stage prodbun run db:generate
bun run db:resetFor schema changes:
- update schema files under
packages/database/src/schema/ - generate migrations with Drizzle
- update
packages/database/src/migrations-bundled.ts - test the migration locally
When changing server APIs:
- update
packages/server/src/routes/ - update
packages/server/src/openapi/spec.ts - regenerate the client:
bun run --filter @ottocode/api generatebun run build:bin:darwin-arm64
bun run build:bin:darwin-x64
bun run build:bin:linux-x64
bun run build:bin:linux-arm64- use Bun for everything
- use Biome via
bun lint - use workspace imports for cross-package references
- keep changes focused and modular
- write tests for behavior changes