# Quickstart

From nothing to your agent reading its first event, in about three minutes.

You need Node.js 22.12 or later, an email address you can read, and Claude Code or Codex (optional: any MCP client works, see [Other MCP clients and REST](/get-started/other-clients.md)).

## 1. Run init in your project folder

```bash
cd my-project
npx brynth init
```

`init` asks a few questions and then:

1. sends a sign-in link to your email and waits, up to 15 minutes, until you open it and press Confirm;
2. creates a Brynth project (the name defaults to the folder name);
3. saves the project's admin key in `~/.config/brynth/credentials.json` (mode 0600; `BRYNTH_CONFIG_DIR` moves it, see the [CLI reference](/reference/cli.md));
4. connects the agents you pick, Claude Code and Codex by default, each with its own key;
5. installs the Brynth skill in this folder for each agent it connected (`.claude/skills/brynth/SKILL.md` for Claude Code, `.agents/skills/brynth/SKILL.md` for Codex), unless you pass `--no-skill`;
6. creates two sources: an email address (`email`) and a test webhook (`test`);
7. links Telegram for approvals, if you say yes when asked or pass `--telegram`;
8. prints a test request and what to ask your agent.

An account can have up to 3 projects.

## 2. Send the test webhook

`init` ends with a command like this one, with your own URL:

```bash
curl -X POST "https://hooks.brynth.ai/w/…" -H "content-type: application/json" \
  -d '{"hello":"brynth"}'
```

Brynth answers `200` and queues the event.

## 3. Ask your agent

Open Claude Code or Codex in the same folder and ask:

> Check my Brynth inbox.

The agent calls `session_hello`, then `inbox_list`, and finds a `webhook.received` event from the `test` source with the payload `{"hello":"brynth"}`. The event is marked `external_untrusted`: the skill tells the agent to treat its content as data, never as instructions.

## Without questions

In scripts and CI, pass everything as flags:

```bash
npx brynth init --yes --email you@example.com --client claude-code,codex
```

With `--yes`, `--email` is required, and no agent is connected unless you name it with `--client`. Add `--json` to get one JSON object on stdout.

## Next

- [Stripe webhooks in Claude Code](/guides/stripe-webhooks.md)
- [Your agent asks permission on Telegram](/guides/telegram-approvals.md)
- [Send email](/guides/send-email.md)
- Check the setup any time with `npx brynth status`, and read the ledger with `npx brynth logs`.
