# Build with AI agents

Every way an AI agent can use Assent, how a person gets access, safe ways to try it, and a rules snippet for your own repository.

This page is for AI agents and the people who set them up. It lists every entry point, in the order most agents need them.

## Access comes first

Assent is invite only, and sign-up is closed. An agent cannot create an account, and must never try to.

- A person without an account emails [hello@specvista.com](mailto:hello@specvista.com?subject=Access%20request) with the subject "Access request". The **Request access** button at [assent.specvista.com/sign-up](https://assent.specvista.com/sign-up) opens the same email.
- With an invite, they open the invite link from their email, create the account with the address the invite was sent to, and sign in on the web or in the iPhone app.
- They then add an agent for you and give you its agent key. See [Connect an agent](https://docs.specvista.com/assent/connect-an-agent.md).

## Entry points

| Entry point | Address | Use it for |
|---|---|---|
| `llms.txt` | [docs.specvista.com/assent/llms.txt](https://docs.specvista.com/assent/llms.txt) | The docs index, opening with instructions for agents |
| `llms-full.txt` | [docs.specvista.com/assent/llms-full.txt](https://docs.specvista.com/assent/llms-full.txt) | Every docs page as one Markdown file |
| Markdown pages | Add `.md` to any docs URL, for example [agents.md](https://docs.specvista.com/assent/agents.md) | Reading one page without HTML |
| Product summary | [assent.specvista.com/llms.txt](https://assent.specvista.com/llms.txt) | What Assent is and where to start |
| Remote MCP server | `https://ordia-api.specvista.com/api/v1/mcp` | Ask, wait for the answer, check rules, report runs. Streamable HTTP with the agent key as a bearer token, or OAuth for Claude, ChatGPT, Cursor and Claude Code. See [MCP server](https://docs.specvista.com/assent/mcp.md) |
| Local MCP server | `assent mcp` | Clients that start MCP servers as a command, such as Codex and Claude Desktop |
| Command line | `assent-cli` on npm, commands `assent` and `assent-cli` | Scripts, CI and scheduled jobs. See [Command line](https://docs.specvista.com/assent/cli.md) and [Scripts and CI](https://docs.specvista.com/assent/scripts-and-ci.md) |
| Helper | `assent-helper` on npm | Pairing a Mac or Windows computer so Run now restarts an agent with the answer. See [Connect a computer](https://docs.specvista.com/assent/connect-a-computer.md) |
| HTTP API | `https://ordia-api.specvista.com/api/v1` | Anything that can send HTTP. See [HTTP API](https://docs.specvista.com/assent/api.md) |
| Claude Code hook | `assent hook claude-code install` | Sending risky Claude Code tool calls to the person first. See [Claude Code](https://docs.specvista.com/assent/claude-code.md) |

Check what npm serves before you install or report a version:

```bash
npm view assent-cli version
npm view assent-helper version
```

Compare with `assent --version` and `assent-helper --version`. Both packages need Node.js 20 or later.

There is no OpenAPI document and no agent skill to install yet. The rules snippet below plays the part of a skill.

## Which one to use

- **An assistant that speaks MCP** (Claude Code, Claude Desktop, ChatGPT, Cursor, Codex): [Connect Claude, ChatGPT, Cursor or Codex](https://docs.specvista.com/assent/connect-an-assistant.md).
- **A shell script, CI job or scheduled job**: [Scripts and CI](https://docs.specvista.com/assent/scripts-and-ci.md).
- **An agent that should restart when the person answers**: pair its computer with [Connect a computer](https://docs.specvista.com/assent/connect-a-computer.md), then set the agent to **Run now**.
- **The person answering**: [Answer asks from your phone](https://docs.specvista.com/assent/answer-from-your-phone.md).

## Safe ways to try

There is no sandbox or test mode: every ask reaches a real person's phone.

- `assent whoami` and `assent answers` only read. `assent rules check` tells you whether the person's rules allow an action, without notifying them.
- A person who wants to see Assent before connecting a real agent can add the sample agent: **Try a sample** on the **Agents** page while it is empty, or **Try a sample agent** in **Connect**. It posts one approval, a few renewals and a small plan, never runs anything, and can be removed from the same place.
- When you retry an ask, send the same `dedupeKey` (or `--dedupe`) or `Idempotency-Key` header, so the person sees one ask, not two.

## What agents never do

- Answer an ask. Only the person can; there is no agent endpoint for it.
- Put passwords, card numbers, bank details or one-time codes in an ask. `pay` and `login` asks carry only a link, and a `code` ask asks the person to type the code.
- Print, log or commit an agent key (`oak_...`) or a computer key.
- Pair a computer, or allow a resume command, without the person seeing it. `assent-helper allow --yes` skips the confirmation, so use it only when the person has approved that exact command.
- Sign up, request an invite or accept terms on someone's behalf.

## Ordia Desk

Ordia Desk is the Specvista notes and tasks app at [notes.specvista.com](https://notes.specvista.com). It uses the same account as Assent, and its own [llms.txt](https://notes.specvista.com/llms.txt) describes it for agents.

- Agents can add to it: `assent_ordia_todo_add` and `assent_ordia_note_add` over MCP, `assent task add` and `assent note personal` on the command line. Note that the MCP tool `assent_task_add` adds a to-do in Assent, while the command `assent task add` adds one to Ordia Desk; `assent ask --kind todo` is the command line's Assent to-do.
- Agents cannot browse or search Ordia Desk. They read only notes pinned as shared memory for them (`assent_memory`), projects the person linked them to (`assent project get` or `GET /agent/projects/{uuid}`), and items they created.

## A rules snippet for your repository

Paste this into `AGENTS.md`, `CLAUDE.md` or your editor's rules file so every agent working in the repository uses Assent the same way.

```markdown
## Assent

Ask the person through Assent before any step you should not take alone, and act only on their answer.

- Docs: https://docs.specvista.com/assent/llms.txt (every page also as .md).
- The agent key is in ASSENT_AGENT_KEY. Never print, log or commit it.
- Before a risky action, run `assent rules check --action <name> --target <target>`. Exit 0: go ahead. Exit 10: do not do it. Exit 11: ask.
- To ask: `assent ask --title "<action or question>" --why "<one sentence>" --rule-action <name> --target <target> --dedupe <stable key> --wait --timeout 900`.
  Act only when `answer.actionId` is `done`. Exit 6 means no answer yet: stop and say so.
- Never put passwords, card details or one-time codes in an ask.
- If Assent is unreachable (exit 69), do not take the risky step; stop and report.
```

## Errors

The HTTP API answers errors as JSON with `statusCode`, `error` and a `message` that says what to change. MCP tools return `{"error": message, "status": code}` as a tool error. The command line prints `{"error": message, "exitCode": code}` on stderr and exits with a stable code. See [HTTP API](https://docs.specvista.com/assent/api.md#errors), [MCP server](https://docs.specvista.com/assent/mcp.md#errors) and [Command line](https://docs.specvista.com/assent/cli.md#exit-codes).
