# Granola Archive Search

Search Granola meeting notes and transcripts in a local archive.

- Repository: https://github.com/openclaw/openclaw (393636 stars)
- Category: Data and ML
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add openclaw/openclaw --skill graincrawl -g -a claude-code -y`
Codex: `npx skills add openclaw/openclaw --skill graincrawl -g -a codex -y`
Cursor: `npx skills add openclaw/openclaw --skill graincrawl -g -a cursor -y`
Gemini CLI: `npx skills add openclaw/openclaw --skill graincrawl -g -a gemini-cli -y`

## Description

Granola archive: search, sync freshness, notes, transcripts, panels, SQL counts, and Graincrawl repo work.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Graincrawl

Use local Granola archive data first. Check freshness for recent/current questions:

```bash
graincrawl doctor --json
graincrawl status --json
```

Refresh only when stale or asked:

```bash
graincrawl sync --source private-api
graincrawl sync --source desktop-cache
```

Query with bounded reads:

```bash
graincrawl search "query"
graincrawl notes --json
graincrawl note get <id>
graincrawl transcripts get <id>
graincrawl panels get <id>
graincrawl --json sql "select count(*) as notes from notes;"
```

Report absolute date spans, note titles, source gaps, and transcript/panel availability. Use read-only SQL for exact counts/rankings. Ordinary reads must not surprise-prompt Keychain. Before encrypted source debugging, inspect `graincrawl secrets --json`; use `graincrawl unlock --json` before enabling encrypted sources. Resolve the database from status/config rather than assuming a machine-specific path.

