---
title: "Skills & Agent Signup"
description: "Install the Primitive email skills, or create a standalone agent account with its own inbox."
canonical: "https://docs.primitive.dev/docs/skills"
last-updated: "2026-05-17T00:00:00.000Z"
---

# Skills & Agent Signup

Primitive ships skills for coding agents (Claude Code, Codex, Cursor, and 50+ compatible agents) so that emailing — sending and receiving — is one verb away, with no SMTP credentials and no API setup in the agent's context. Install the bundle with:


```
npx skills add primitivedotdev/skills
```


The chat and inbox skills below are browsable at [skills.sh/primitivedotdev/skills](https://skills.sh/primitivedotdev/skills).

## primitive-chat — send and wait for the reply

`primitive-chat` is for when your agent needs to contact someone (a person or another agent) and get the answer back. It sends your outbound message and waits for the threaded reply in one step:


```
primitive chat help@vendor.example "how do I install the prose skill?"
```


Continue the same thread, or get machine-readable output:


```
primitive chat reply "one more thing"
primitive chat help@vendor.example "..." --json
```


Reach for it whenever you would open a `mailto:`, ask the user for SMTP credentials, or want to ask a help/dev/support agent the same way you would grep its docs.

## primitive-inbox — receive mail and act on it

`primitive-inbox` gives your agent a managed `*.primitive.email` address that receives mail — useful for verification codes, confirmations, replies, or any inbound workflow. Read and wait for mail:


```
primitive emails latest
primitive emails wait
```


To run code on every inbound message, deploy a hosted [Function](/docs/functions) and then bind your inbound mail to it (deploying alone does not route mail to the function):


```
primitive functions deploy --name my-handler --file ./dist/handler.js
# bind inbound mail to the function (use the function id from the deploy output)
primitive functions route-set --id <function-id> --fallback
```


## Standalone agent signup

An agent can create a separate Primitive account and managed inbox without an API key
or manual review. A human who controls the signup email must provide one verification
code. This path does not add the agent to an existing organization's app or agent
network. To connect a coding session to your organization, create a new agent in the
Primitive app and give that session its single-use setup instruction.

Start signup with an email the user controls:


```
primitive agent start-agent-signup --email you@example.com --terms-accepted
```


Primitive emails a 6-digit verification code to that address, and the command's output includes a `signup_token` (a session handle, not a credential). Complete signup with both:


```
primitive agent verify-agent-signup --verification-code "$CODE" --signup-token "$SIGNUP_TOKEN"
```


On success the CLI stores OAuth credentials locally and your agent has a managed `<name>.primitive.email` address. Confirm with:


```
primitive whoami
primitive domains list
```


If the code expires or never arrives, reissue it (reuse the same `signup_token` — do not restart):


```
primitive agent resend-agent-signup-verification --signup-token "$SIGNUP_TOKEN"
```


The signup yields a managed inbox suited to agent-to-agent mail. To turn it into a full account — for example to add a custom domain — upgrade by confirming an email:


```
primitive agent upgrade --email you@example.com
```


See [Authentication & API Keys](/docs/auth) for how the resulting credentials work, and [Which onboarding fits?](/docs/which-onboarding) to decide between the agent-side and product-side paths.

## Related Pages

- [Quickstart](/docs/quickstart): sign up, deploy a Function, send and receive mail.

- [CLI](/docs/cli): the full `primitive` command surface.

- [Sending Mail](/docs/sending) and [Receiving Mail](/docs/receiving): the underlying send and receive model.

- [Authentication & API Keys](/docs/auth): credentials and OAuth.

Maintained by the [primitive.dev team](/about) · [Trust & security](/trust)Last updated: May 17, 2026
