Search and read your Monologue notes

Queries your Monologue vault using the Notes API, handles auth securely, and surfaces the notes you're looking for—with pagination and filtering built in.

Best for: Finding a specific note or idea buried in your Monologue vault without leaving Claude.

Operations / process-automationatomicno-setupfor-opsneeds-integration

Topics

agentskills

Source

Creator's repository · intellectronica/agent-skills

View on GitHub

License: CC0-1.0

Skill file

Preview skill file
---
name: monologue-notes-api
description: >
  Use this skill when the user wants to read or search their Monologue notes through the
  Monologue Notes REST API. It covers authentication with the MONOLOGUE_API_KEY environment
  variable, safe token handling, listing notes, fetching a single note, pagination, filters,
  and error handling. The API is read-only and should be accessed with direct HTTP requests
  such as curl or any equivalent REST client.
---

# Monologue Notes API

This skill provides the information needed to call the Monologue Notes REST API directly.
Use it for read-only operations on the authenticated user's notes.

Use whatever HTTP client fits the task: `curl`, a short script, or another REST-capable tool.
Do not invent client libraries unless the user asks for one.

## Authentication

Use the environment variable `MONOLOGUE_API_KEY` as the bearer token.

- Required auth header: `Authorization: Bearer $MONOLOGUE_API_KEY`
- Required scope: `notes:read`
- Never print the token, echo it, log it, or include it in a response to the user
- Only pass it through the `Authorization` header as a shell variable expansion

Check whether the token is available without displaying it:

```bash
if [ -z "${MONOLOGUE_API_KEY:-}" ]; then
  echo "MONOLOGUE_API_KEY is not set"
fi
```

If `MONOLOGUE_API_KEY` is missing:

- Report that the environment variable is not present
- Ask the user whether they want to provide an API key
- Do not attempt authenticated API calls until a token is available

Avoid commands such as these because they would expose secrets:

```bash
echo "$MONOLOGUE_API_KEY"
env | grep MONOLOGUE_API_KEY
set | grep MONOLOGUE_API_KEY
```

## Base URL

- Base URL: `https://api.monologue.to`
- API shape: read-only Notes API
- Data format: JSON
- Timestamps: ISO 8601 date-time strings

## Request Pattern

For all requests:

```bash
curl -sS \
  -H "Authorization: Bearer $MONOLOGUE_API_KEY" \
  "https://api.monologue.to/..."
```

If structured output is useful, pipe the response to `jq`.

## Endpoints

### List notes

`GET /v1/public-api/notes`

Returns a page of notes for the authenticated user.

Supported query parameters:

- `limit`: integer from `1` to `100`, default `20`
- `cursor`: opaque pagination cursor from a previous response
- `created_after`: ISO 8601 timestamp
- `created_before`: ISO 8601 timestamp
- `updated_after`: ISO 8601 timestamp
- `q`: full-text search across titles, summaries, and transcripts

Example:

```bash
curl -sS \
  -H "Authorization: Bearer $MONOLOGUE_API_KEY" \
  "https://api.monologue.to/v1/public-api/notes?limit=20&q=interview"
```

Example with `jq`:

```bash
curl -sS \
  -H "Authorization: Bearer $MONOLOGUE_API_KEY" \
  "https://api.monologue.to/v1/public-api/notes?limit=20" \
  | jq '{next_cursor, items: [.items[] | {note_id, title, summary, created_at, updated_at}]}'
```

Expected response fields:

- `items`: array of note summaries
- `next_cursor`: cursor for the next page, if any

Each list item may include:

- `note_id`
- `title`
- `summary`
- `created_at`
- `updated_at`

Possible errors:

- `400`: invalid filter or cursor
- `401`: missing or invalid token
- `403`: token lacks the required scope
- `422`: validation error

### Get a single note

`GET /v1/public-api/notes/{note_id}`

Returns the full details for one note belonging to the authenticated user.

Path parameters:

- `note_id`: note identifier returned by the list endpoint

Example:

```bash
curl -sS \
  -H "Authorization: Bearer $MONOLOGUE_API_KEY" \
  "https://api.monologue.to/v1/public-api/notes/NOTE_ID"
```

Example with `jq`:

```bash
curl -sS \
  -H "Authorization: Bearer $MONOLOGUE_API_KEY" \
  "https://api.monologue.to/v1/public-api/notes/NOTE_ID" \
  | jq '{note_id, title, summary, transcript, transcript_segments, created_at, updated_at}'
```

In addition to the list fields, the full note response may include:

- `transcript`
- `transcript_segments`

Notes:

- `transcript_segments` is loosely typed structured JSON and may be `null`
- `404` means the note was not found for the authenticated user

Possible errors:

- `401`: missing or invalid token
- `403`: token lacks the required scope
- `404`: note not found
- `422`: validation error

## Common Workflows

### Search notes by keyword

Use the `q` parameter:

```bash
curl -sS \
  -H "Authorization: Bearer $MONOLOGUE_API_KEY" \
  "https://api.monologue.to/v1/public-api/notes?q=meeting"
```

Search covers:

- note titles
- note summaries
- note transcripts

### Page through results

1. Call `GET /v1/public-api/notes`
2. Read `next_cursor` from the response
3. Pass that cursor back as the `cursor` query parameter
4. Stop when `next_cursor` is absent or `null`

Example:

```bash
curl -sS \
  -H "Authorization: Bearer $MONOLOGUE_API_KEY" \
  "https://api.monologue.to/v1/public-api/notes?limit=50&cursor=OPAQUE_CURSOR"
```

### Filter by time

Use ISO 8601 date-time values:

```bash
curl -sS \
  -H "Authorization: Bearer $MONOLOGUE_API_KEY" \
  "https://api.monologue.to/v1/public-api/notes?created_after=2026-01-01T00:00:00Z"
```

## Operating Rules

- Treat this API as read-only
- Do not claim write support; this skill only covers listing and reading notes
- Prefer `https://api.monologue.to` for requests
- When reporting failures, summarise the HTTP status and relevant response body without exposing the token
- If the user asks for a workflow that requires local post-processing, fetch the data first and then transform it separately

## Source Notes

This skill is based on:

- `/Users/eleanor/repos/obsidian/intellectronica/2026-04-21-20-10 Monologue API.md`
- Live OpenAPI checks against `https://api.monologue.to/public-openapi.json` on 2026-04-22