Skip to content

Contributing

Caracal is an open-source project maintained by Garudex Labs. Contributions are welcome — bug reports, documentation improvements, test coverage, and new features. This section covers everything you need to work on the repository: how to set up a local stack, what code style to follow, how to run tests, and how to get changes merged and released.

PageWhat it covers
Local SetupRequired toolchains, cloning, and bootstrapping the dev stack
Development WorkflowBranching, commits, Changesets, code review, and DCO sign-off
Code StyleFile headers, naming conventions, the no-legacy rule, and instructions.md
TestingTest tiers, how to run each suite, and what CI enforces
Release and VersioningCalVer tags, npm Changesets, PyPI OIDC publishing, and container images
GovernanceMaintainership, decision-making, RFCs, and the security disclosure process
caracal/
apps/ CLI and TUI applications
services/ Long-running services (API, STS, Gateway, Coordinator, Audit)
packages/ Shared TypeScript packages
infra/ Docker Compose stacks, Postgres migrations, Redis config
docs/ This documentation site (Astro/Starlight)
tests/ Cross-package test suites organized by test type
examples/ Reference applications (e.g., lynxCapital)
scripts/ Build, release, and maintenance scripts
governance/ CODEOWNERS, RFC templates, maintainer policies
LanguageManagerCountLocation
TypeScriptpnpm 11 workspace13 packagespackages/, apps/, services/ (TS)
Gogo.work11 modulesservices/ (Go), packages/ (Go)
Pythonper-package venv6 packagespackages/ (Python)

All three ecosystems coexist in the same repository. They share no build tooling — each uses its own language-native commands.

Terminal window
git clone https://github.com/garudex-labs/caracal.git
cd caracal
pnpm install
cp .env.example .env
caracal up
caracal init

Full details are in Local Setup.