# What bit is

bit is git with Lorx built in: CI on your machine, change requests from your terminal, and sign-in for git.

bit sits beside git, not in place of it. Everything you do with git still works, and bit adds what git doesn't know about: your CI, change requests, runners and signing in to Lorx.

| You want to | Run |
|---|---|
| Get a machine ready | `bit setup` |
| Sign in, or check who you are | `bit auth login`, `bit auth status` |
| Make a repository and push to it | `bit repo create app --push` |
| Clone one | `bit clone owner/app` |
| Run your CI before pushing | `bit run` |
| Check your workflows | `bit ci check` |
| Open a change request | `bit cr create` |
| Merge one, now or when it's ready | `bit cr merge 42`, `bit cr merge 42 --auto` |
| Bring pull requests from GitHub | `bit import github owner/app` |
| Make this machine a runner | `bit runner register`, `bit runner run` |
| Update bit | `bit upgrade` |

## Which host, which repository

Commands that talk to Lorx find the host the same way:
1. the `--host` you pass;
2. else `LORX_HOST`;
3. else the host you signed in to;
4. else `git.lorx.space`.

Commands about one repository use this checkout's Lorx remote, unless you pass `--repo owner/name`. With `--repo`, the ones that only talk to Lorx (`bit cr list`, `bit cr view`, `bit cr merge` and the like) work anywhere, even without git; the ones that touch your checkout (`bit cr create`, `bit cr checkout`) need git.

## Output for scripts

`bit cr list --json`, `bit cr view --json`, `bit run --json`, `bit ci check --json` and `bit ci graph --format json` print JSON for scripts and agents. bit exits non-zero when something fails, and says why on stderr.

Every command and option is on the [command reference](/docs/bit/reference).
