# Atcli

> Attio REST API CLI for records, lists, tasks, and raw API calls. Use when accessing Attio workspaces from the terminal.

- Skill: `badlogic/atcli` (Agent Skill)
- Install (CLI): `npx skillmds@latest add badlogic/atcli`
- Raw SKILL.md: https://api.skillmd.com/api/skills/badlogic/atcli/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: badlogic (https://skillmd.com/u/badlogic)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/badlogic/atcli

---


# atcli

Minimal Attio CLI using the REST API directly. No MCP server.

## CLI path

When this is installed as a pi package from git, pi runs `npm install`, which runs the build. From this skill directory, invoke the CLI with:

```bash
node ../../dist/cli.js <args>
```

If installed globally with npm, `atcli <args>` also works.

## API key required

`atcli` needs an Attio access token before it can make API calls.

Create or update a token in your workspace's developer settings:

```text
https://app.attio.com/<workspace-slug>/settings/developers/access-tokens
```

Set the permission options/scopes you need, then click **Save changes**. Copy the token and save it locally under an account name:

```bash
node ../../dist/cli.js accounts token work <token>
# or, if ATTIO_TOKEN is set
node ../../dist/cli.js accounts token work $ATTIO_TOKEN
```

Tokens are stored in `~/.atcli/accounts.json`.

## Common commands

```bash
node ../../dist/cli.js accounts list
node ../../dist/cli.js work me
node ../../dist/cli.js work objects
node ../../dist/cli.js work records people --limit 10
node ../../dist/cli.js work records companies --filter '{"name":"Acme"}' --json
node ../../dist/cli.js work raw GET /objects/people/attributes
```

## Raw API calls

Use `raw` for endpoints not yet wrapped by first-class commands:

```bash
node ../../dist/cli.js work raw GET /objects/people/attributes
node ../../dist/cli.js work raw POST /objects/people/records/query '{"limit":5}'
node ../../dist/cli.js work raw PATCH /objects/people/records/<recordId> @body.json
```

