- Node.js 20+
- Docker and Docker Compose
git clone https://github.com/ix-infrastructure/Ix.git
cd Ix
./scripts/backend.sh up # Start ArangoDB + Memory Layer (Docker)
cd ix-cli && npm ci && npm run build# core-ingestion (parser library, built automatically by ix-cli)
cd core-ingestion
npm ci
npm run build
# ix-cli
cd ../ix-cli
npm ci
npm run build# CLI tests
cd ix-cli && npm test- Create a branch from
main - Make your changes
- Run tests locally
- Open a PR using the pull request template
- Ensure CI passes before merge
feat/<name>
fix/<name>
docs/<name>
refactor/<name>
test/<name>
ci/<name>
chore/<name>
Use conventional commit prefixes:
feat: New feature
fix: Bug fix
docs: Documentation only
refactor: Code change that neither fixes a bug nor adds a feature
test: Adding or updating tests
ci: CI/CD changes
chore: Maintenance, dependencies, tooling
Breaking changes: use feat!: or fix!: prefix.
| What changed | Run |
|---|---|
| CLI code | cd ix-cli && npm test |
| Any change | Full test suite before opening PR |
- Clean, minimal output — no unnecessary verbosity
- Consistent formatting across all commands
- No raw stack traces in normal mode
- Use the structured error system (
ix-cli/src/cli/errors.ts) --debugmay show detailed output
- Follow existing Ix command voice and terminology
- Match output patterns of existing commands
PRs and pushes to main run automated security checks:
- Dependency review — flags new dependencies with known vulnerabilities (PRs only)
- Trivy scanning — scans the repo filesystem and Docker image for vulnerabilities and misconfigurations
- Config security — scans Docker Compose and deployment configs for unsafe exposure (e.g., auth disabled with public port bindings,
0.0.0.0bindings). Local-only configs that bind to127.0.0.1are allowed.
All checks fail on CRITICAL or HIGH severity findings. If a check fails on your PR, inspect the output and either fix the vulnerability or document why it's a false positive.
The Scala backend (memory-layer) lives in a separate private repo. For backend changes, clone that repo directly.
This repository contains open-source Ix functionality. Some features are available only in Ix Pro.
Contributors must:
- Not reintroduce Pro-only features into this repository
- Not bypass licensing boundaries
- Respect the separation between OSS and Pro functionality
If you're unsure whether a feature belongs in OSS or Pro, ask in your PR.