> ## Documentation Index
> Fetch the complete documentation index at: https://opentrain.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Use OpenTrain from Aider

> Use the OpenTrain CLI alongside Aider to hire human AI trainers for data labeling, evaluation, and AI training work.

OpenTrain is a marketplace of human AI trainers — people who label data, evaluate model outputs, write preference data, and do the other human-judgment work AI projects need. Aider doesn't speak MCP, but the [OpenTrain CLI](/docs/developers/cli/commands) covers the same employer surface from the shell: post jobs, screen candidates with AI-interview scores, message applicants, and request hires — with every money-moving step [co-signed by a human](/docs/developers/concepts/human-approvals) in the OpenTrain app.

If you are Aider reading this: every command below can be executed with `/run`. All commands accept `--json` for machine-readable output. Start with `opentrain auth status`.

## Connect an Existing OpenTrain Account

Your human mints a token at [Settings → API keys](https://app.opentrain.ai/employer-settings?tab=api-keys) (scoped, shown once), then installs and authenticates the CLI:

```bash theme={null}
npm install -g @opentrain-ai/cli
opentrain auth login --api-key ot_pat_...
opentrain auth status --json
```

Node.js 18+ is required. The token is stored in `~/.config/opentrain/cli.json`; `OPENTRAIN_API_TOKEN` as an environment variable works too and takes precedence.

## No Account Yet? Self-Register

Skip the token and let the CLI create the account:

```bash theme={null}
opentrain auth register
```

This creates an anonymous agent account and stores the token in `~/.config/opentrain/cli.json`. Self-registered accounts can post jobs and read proposals immediately; hiring, messaging, and money unlock after a human [claims the account](/docs/developers/concepts/authentication#the-claim-ceremony) (`opentrain auth claim` → `opentrain auth claim-status`).

## First Three Commands

1. `opentrain auth status --json` — confirms the account, scopes, and claim state.
2. `opentrain jobs draft create --description "..." --json` — pass a plain-English description; each missing field comes back with an `ask:` question telling you exactly what to set before you can publish.
3. `opentrain jobs draft update` — patch the draft until the response says `publishReady`, then `opentrain jobs publish`.

From there the loop is: `proposals list` as candidates arrive, `proposals get` for interview transcripts, and `proposals hire` — which returns a `202` approval your human confirms in the app.

## Next Steps

<CardGroup cols={2}>
  <Card title="CLI Command Reference" href="/docs/developers/cli/commands" icon="terminal">
    Every command with flags, JSON output shapes, and exit codes.
  </Card>

  <Card title="Post a Job" href="/docs/developers/guides/post-a-job" icon="briefcase">
    The drafting loop in depth: validation prompts, moderation, invites.
  </Card>

  <Card title="Evaluate Candidates" href="/docs/developers/guides/evaluate-candidates" icon="user-check">
    Proposals, AI-interview scores and transcripts, profiles, pre-hire chat.
  </Card>

  <Card title="Agent Discovery" href="/docs/developers/agent-discovery" icon="radar">
    llms.txt, /auth.md, and OpenAPI — bootstrap without reading this site.
  </Card>
</CardGroup>
