---
title: "Monica CRM CLI for AI agents (monica) · Stefan Preu"
description: "monica is an open-source CLI for the Monica personal CRM, built for AI agents: read-only by default, instance-aware tool exports and checked API calls."
url: https://preu.at/work/monica-cli
updated: 2026-10-19
---

# Monica CLI

a personal CRM from the command line: read-only until you say otherwise, with tool definitions an agent can load as they are.

- install: `npm install -g monica-cli`
- version: 2026.8.1 · 1 Aug 2026
- commands: `monica`, `monica-cli`
- node: ≥ 22.13
- license: MIT
- source: [github.com/unbraind/monica-cli](https://github.com/unbraind/monica-cli)
- works with: [Monica](https://www.monicahq.com)

## what it’s for

monica works with Monica, the open-source personal relationship manager: contacts, notes, activities, reminders, tasks, journal entries, relationships and more, on the stable 4.x API and on the current main API with UUID identifiers. output is official TOON by default, or JSON, YAML, markdown and tables, and --raw prints just the data rows for jq.

a CRM holds other people’s details, so this one starts careful: setup leaves read-only mode on unless you ask for read-write, and checks what your server version supports before an agent plans anything.

## what it covers

contacts, notes, activities, reminders, tasks, tags, companies, calls, gifts, debts, journal, relationships, documents, photos, audit logs.

## built for agents: walls around the effects

other people’s details deserve a second key. reading is the default; writing is a decision.

- **read-only from the first run.** setup keeps read-only mode on unless you pass --read-write; --dry-run validates a configuration without saving it. `monica setup --api-url http://your-monica-instance/api --api-key your-api-key --non-interactive --dry-run`
- **know what this server supports.** a read-only capability probe gives an allow-list of supported commands, and a deny-list with the endpoint and status that ruled each one out. `monica --json info unsupported-commands`
- **tools in your runtime’s shape.** exports tool definitions for OpenAI, Anthropic and MCP with required inputs and mutation safety metadata, limited to what your server supports. `monica --json agent-tools mcp-tools --instance-aware`
- **writes need two keys.** API mutations need --confirm and a write-enabled configuration. `monica api mutate <operation> --confirm`
- **contracts you can check.** every output type has a registered schema, and JSON, YAML or TOON payloads can be validated against it. `monica schemas validate config-test ./payload.toon`

## a first run

```sh
# # connect; read-only stays on
monica setup
monica info capabilities
monica contacts list
```

commands from the project’s README; what they print depends on your server. checked against the README at [9499a09](https://github.com/unbraind/monica-cli/blob/9499a09727abec0bb1a2b93ad3cad4c9d1e2a37b/README.md) (npm 2026.8.1) · [npm](https://www.npmjs.com/package/monica-cli)

## same rules, four services

each service CLI pairs compact, structured output with discovery an agent can read and writes that have to be asked for.

- [Home Assistant CLI](https://preu.at/work/home-assistant-cli): Home Assistant from the command line, built for agents.
- [Jellyfin CLI](https://preu.at/work/jellyfin-cli): Jellyfin from the command line, built for agents.
- [SearXNG CLI](https://preu.at/work/searxng-cli): web search through your own SearXNG, built for agents.
- [PM CLI](https://preu.at/work/pm-cli): case study. project management is a context problem.

---

[preu.at](https://preu.at/) · Stefan Preu, agentic systems architect, based in austria · [every page for agents](https://preu.at/llms.txt) · this page in a browser: https://preu.at/work/monica-cli
