Ctrl K
ComunidadGuías…

CONTRIBUTING.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Contributing to autonomOS

Thanks for your interest! autonomOS is a personal-tool-first project, but issues and PRs are welcome.

## Getting started

```bash
git clone https://github.com/aterrylu/autonomOS && cd autonomOS
cp -n .env.example .env   # optional config
bun install

make dev                  # API on :3101 + Vite HMR on :5173
```

You'll need **Node 20+** and the `claude` binary on your PATH (autonomOS spawns agent CLIs; Codex and Gemini are optional).

## Development workflow

| Command | What it does |
|---------|--------------|
| `make dev` | API server (watch) + Vite HMR — the day-to-day dev loop |
| `make dev-lan` | Same, but the dashboard is reachable from other devices on your network (see below) |
| `make check` | Lint (Biome) + typecheck (tsc) + server, CLI & dashboard tests — **run before every push** |
| `make fmt` | Auto-fix lint + formatting |
| `make hero` | Regenerate the README hero screenshot (see below) |

`make dev` listens on **this machine only** (127.0.0.1). To open the dev dashboard from a phone or another computer, run `make dev-lan` instead. Anyone on that network who can reach the Vite port gets the dev dashboard's files and its proxy to the API, so do it only on a network you trust. The API server itself always stays on 127.0.0.1. To reach it by a hostname rather than an IP, add the name with Vite's `__VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS` environment variable.

Run `make check` before you push — it mirrors CI exactly, so if it passes locally the PR's `check` job will too.

## Commit messages

We use [Conventional Commits](https://www.conventionalcommits.org/) (enforced by commitlint):

```
feat:     new features
fix:      bug fixes
perf:     performance improvements
refactor: structural changes
docs:     documentation
research: research findings
```

Keep the subject imperative and concise; `commitlint` will flag anything malformed on commit.

## Pull requests

1. Branch off `main`, make your change, and open a PR against `main`.
2. **CI must pass** (lint, typecheck, tests across macOS + Linux) — never bypass with `--admin`.
3. **Resolve all review conversations** before merge (it's enforced on `main`).
4. PRs are **squash-merged** — your branch's commit history collapses to one commit, so don't worry about tidy intermediate commits.

## A few project conventions

- **Architectural decisions go in [`docs/decisions/`](docs/decisions/README.md)**, one append-only ADR file per decision with context + rationale. If your change makes a non-obvious design choice, run `make adr NEW="Short title"` and fill in the template.
- **Changing the dashboard UI? Re-run `make hero`.** The README hero (`docs/assets/hero.png`) is *generated*, not hand-captured — it must reflect the real product. Any visible change (layout, sidebar, org chart, status bar, themes, provider icons, usage bars) means re-shooting it and committing the updated PNG. See [`packages/dashboard/scripts/capture-hero.ts`](packages/dashboard/scripts/capture-hero.ts).
- **MCP tool schemas live in `packages/server/src/mcp/tools.ts`** — the single source of truth shared by both MCP transports. Don't define them elsewhere.
- **Terminology:** the UI says "agents"; the code says "sessions." Both mean the same managed PTY process.

See [`CLAUDE.md`](CLAUDE.md) for the full agent/developer guide and [`docs/`](docs/) for features, decisions, and vision.

## License

By contributing, you agree your contributions are licensed under the project's [MIT License](LICENSE).