- Install Bun (v1.3+)
- Clone the repository
- Run
bun install - Run
bun devto start in development mode
bun dev— Run TUI in development modebun run lint— Lint with oxlintbun typecheck— Type check all packages (runs via Turborepo from repo root)cd packages/tinycode && bun test— Run tests
Read docs/architecture.md first to understand how the codebase fits together.
Approachable contribution areas:
- Agent definitions -- add or improve agent
.mdfiles inpackages/tinycode/src/agent/defaults/ - Skills -- add skill definitions in
packages/tinycode/src/skill/defaults/ - Plugin tools -- create tools via the
@tinycode/pluginSDK (no Effect knowledge needed) - Documentation -- improve anything under
docs/
There are two paths for adding tools. Plugin tools use @tinycode/plugin and are the easiest way to contribute -- see docs/adding-a-tool.md. Core tools live in packages/tinycode/src/tool/ and require familiarity with the Effect framework.
Note:
bun testcannot be run from the repo root. Alwayscdinto a package first (e.g.,cd packages/tinycode && bun test).
Please open a GitHub Issue before submitting a PR for anything beyond a typo or documentation fix. Code PRs without a prior issue may be closed.
- Fork the repository
- Create a feature branch (
git checkout -b feature/my-feature) - Make your changes
- Run
bun run lint,bun typecheck, andcd packages/tinycode && bun testbefore committing - Use conventional commit messages:
feat:,fix:,refactor:,docs:,test:,chore: - Push and open a PR against
main
CI runs three gates on every PR: lint, typecheck, and test (see .github/workflows/ci.yml). Some tests (TUI, httpapi-listen, help) are excluded in CI.
- TypeScript with Effect framework for server-side code
- SolidJS for TUI and web UI
- See AGENTS.md for detailed coding style rules
- Keep files under 800 lines
- Prefer immutable patterns for shared state
Agents are markdown files in packages/tinycode/src/agent/defaults/. See docs/internal/agent-prompt-tiers.md for the dual-tier system.
Skills are SKILL.md files in packages/tinycode/src/skill/defaults/. Each skill is a subdirectory with a SKILL.md containing YAML frontmatter.
Run tests from a package directory, never from root:
cd packages/tinycode && bun test --timeout 30000CHANGELOG.md is maintained by the project maintainer at release time. Contributors do not need to add changelog entries.
No CLA or DCO is required to contribute.
Open a GitHub Issue for bugs or feature requests. For security vulnerabilities, see SECURITY.md.