360 Secure SkillHub
360 安全技能中心

Graincrawl

通过 graincrawl 命令行查询本地 Granola 会议笔记归档:检查归档状态与新鲜度、搜索笔记、按 ID 获取笔记、转写和面板,并执行只读 SQL 统计;同步与凭据访问需用户明确同意,禁止写入型 SQL。

pmuhammadagus-byte
pmuhammadagus-byte
热度 42.26
最近更新 2026-10-17 01:32:16
分类:知识依赖:代码执行 / 第三方 API应用场景:会议纪要 / 笔记整理 / 研究 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add pmuhammadagus-byte/graincrawl
Metadata
name
graincrawl
triggers
["search local Granola notes and transcripts","check Granola archive freshness","query Granola note transcripts and panels"]
description
Search and inspect local Granola meeting notes, transcripts, and panels. Check archive freshness and run read-only SQL counts. Sync only when explicitly requested by the user.
metadata
{"openclaw":{"version":"2.0.0","homepage":"https://github.com/openclaw/graincrawl","requires":{"bins":["graincrawl"]},"install":[{"kind":"go","module":"github.com/openclaw/graincrawl/cmd/graincrawl@latest","bins":["graincrawl"]}]}}
author
pmuhammadagus-byte
license
MIT

Graincrawl

Search and inspect local Granola meeting notes, transcripts, and panels. This skill is language-agnostic — use whichever language the user prefers.

When to Use

Use when:

  • Searching local Granola notes or transcripts
  • Checking archive freshness or sync status
  • Retrieving specific notes, transcripts, or panels by ID
  • Running read-only SQL counts on the local archive

Don't use when:

  • User needs live meeting recording (not archive data)
  • User wants to edit or modify Granola data
  • No local Granola archive exists

Step 0: Check Local Archive

Always start with local data. Check freshness before answering:

graincrawl doctor --json
graincrawl status --json

Report archive status: total notes, date range, source coverage.

Step 1: Search and Query

Use bounded read-only queries:

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.

SQL queries are read-only. Never run INSERT, UPDATE, DELETE, or DDL commands.

Step 2: Sync (Explicit User Consent Required)

Sync operations contact external sources. Always ask the user before syncing:

"The archive appears stale. Would you like me to sync from a source?"

Only sync after explicit user confirmation:

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

Never auto-sync. Sync only when:

  1. Data is stale AND
  2. User explicitly approves

Step 3: Encrypted Sources

Before debugging encrypted source issues, run explicit unlock/secrets checks:

graincrawl secrets check --json

Do not surprise-prompt Keychain. If secrets are needed, inform the user first and ask for approval before any credential access.

Safety Rules

  • Read-only first: Prefer local read-only queries over sync
  • Explicit consent for sync: Never sync without user approval
  • No destructive SQL: SELECT only — no INSERT/UPDATE/DELETE/DDL
  • No surprise credential access: Warn user before any Keychain/secrets interaction
  • Bounded reads: Use limits on search results to avoid excessive output
  • Report gaps: Always note source coverage gaps and missing data

Quick Reference

Situation Action
Check archive status graincrawl doctor --json + status --json
Search notes graincrawl search "query"
Get specific note graincrawl note get <id>
Get transcript graincrawl transcripts get <id>
Get panel graincrawl panels get <id>
Count notes graincrawl --json sql "select count(*) as notes from notes;"
Archive stale Ask user → sync only if approved
Encrypted source Check secrets explicitly, warn user before Keychain

Changelog

  • 2.0.0 — Fixed: proper description, narrow triggers, language-agnostic, explicit consent for sync, read-only SQL enforcement, no surprise credential access.
  • 1.0.0 — Initial version. Granola archive: search, sync freshness, notes, transcripts, panels, SQL counts.