[BREAKGLASS] Append-only mirror of github.com/openclaw/notcrawl
Go to file
dependabot[bot] 101bb1676b
Some checks failed
Security Gate: Secret Scanning / Scan for Verified Secrets (push) Has been cancelled
chore(deps): bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-05-06 08:56:25 +00:00
.agents/skills/notcrawl docs: document SQL archive queries 2026-05-06 01:54:34 -07:00
.github chore(deps): bump actions/checkout from 5 to 6 2026-05-06 08:56:25 +00:00
cmd/notcrawl fix(cli): keep notcrawl help side-effect free 2026-05-04 04:06:13 -07:00
docs docs: document ci coverage 2026-05-05 19:29:38 -07:00
internal fix(tui): collapse noisy notion link runs 2026-05-03 23:29:15 -07:00
scripts chore: rename project to notcrawl 2026-04-22 16:57:43 -07:00
.editorconfig chore: add Go repository hygiene files 2026-05-06 01:37:03 -07:00
.gitattributes chore: add Go repository hygiene files 2026-05-06 01:37:03 -07:00
.gitignore chore: rename project to notcrawl 2026-04-22 16:57:43 -07:00
.goreleaser.yml fix(release): stamp notcrawl version 2026-05-02 14:54:57 -07:00
CHANGELOG.md docs: document SQL archive queries 2026-05-06 01:54:34 -07:00
config.example.toml feat: support Notion data sources and database maintenance 2026-04-22 22:11:02 -07:00
CONTRIBUTING.md chore: rename project to notcrawl 2026-04-22 16:57:43 -07:00
go.mod chore(deps): use crawlkit v0.4.0 2026-05-05 02:12:57 -07:00
go.sum chore(deps): use crawlkit v0.4.0 2026-05-05 02:12:57 -07:00
LICENSE chore: scaffold notioncrawl 2026-04-22 14:41:56 -07:00
Makefile chore: rename project to notcrawl 2026-04-22 16:57:43 -07:00
README.md docs: document crawlkit integration 2026-05-05 19:16:52 -07:00
SPEC.md fix(export): add bulk database export (#22) 2026-04-29 04:32:52 -07:00

notcrawl banner

🗞️ notcrawl

notcrawl mirrors Notion workspace data into local SQLite and normalized Markdown so you can search, query, diff, and share your Notion memory without depending on the Notion UI.

It has two ingestion paths:

  • desktop: read-only snapshots of the local Notion desktop cache
  • api: official Notion API sync with rate-limit aware crawling

SQLite is the canonical archive. Markdown is the durable human/agent surface. Git share mode publishes normalized snapshots that other machines can subscribe to without holding Notion credentials.

Current Scope

  • local SQLite storage with FTS5
  • read-only local desktop cache ingestion from macOS Notion
  • official API page/block/user/comment ingestion
  • Notion database metadata and row ingestion through the official API
  • current Notion data-source API support plus legacy database endpoint support
  • normalized Markdown export organized by Unicode-safe workspace, teamspace, and page paths
  • CSV/TSV export for crawled Notion database rows
  • compressed JSONL git-share snapshots plus import/update workflows
  • terminal archive browser for quick local page/database inspection
  • archive status, activity reporting, and SQLite maintenance commands
  • read-only SQL access for ad hoc inspection

Install

brew tap vincentkoc/tap
brew install notcrawl

You can also download archives, .deb, or .rpm packages from the latest release.

Quick Start

Use the local Notion Desktop cache:

notcrawl init
notcrawl doctor
notcrawl status
notcrawl report
notcrawl sync --source desktop
notcrawl export-md
notcrawl search "launch plan"
notcrawl tui

Or use the official Notion API:

export NOTION_TOKEN="secret_..."
notcrawl sync --source api
notcrawl databases
notcrawl export-db --database DATABASE_ID --format csv --output roadmap.csv
notcrawl export-db --all --dir exports/csv

Default paths:

  • config: ~/.notcrawl/config.toml
  • database: ~/.notcrawl/notcrawl.db
  • cache: ~/.notcrawl/cache
  • Markdown archive: ~/.notcrawl/pages
  • git share repo: ~/.notcrawl/share

Commands

  • init writes a starter config
  • doctor checks config, SQLite, desktop cache, and token presence
  • status prints archive counts, last sync time, and database/WAL size
  • metadata --json, status --json, and doctor --json expose crawlkit control/status payloads for launchers, automation, and CI
  • report summarizes recent page, database, space, and comment activity
  • maintain rebuilds FTS, optimizes SQLite indexes, and can run VACUUM
  • sync ingests from desktop, api, or all
  • export-md renders normalized Markdown files from SQLite
  • databases lists crawled Notion databases
  • export-db exports one crawled Notion database, or all databases with --all --dir, to CSV or TSV
  • search searches page and comment text through FTS5
  • tui opens the terminal archive browser for pages and databases
  • sql runs read-only SQL against the archive
  • publish exports SQLite tables and Markdown into a git share repo
  • subscribe clones a share repo and imports the latest snapshot
  • update pulls and imports a subscribed share repo

Shared crawlkit surfaces

notcrawl uses crawlkit for standard config paths, SQLite open/read helpers, snapshot packing/import, git-backed archive sharing, output formatting, status payloads, and the shared terminal explorer. Notion API/Desktop parsing, Markdown rendering, page/comment/database schemas, and Notion FTS bodies remain owned by notcrawl.

The TUI follows the gitcrawl-style three-pane model: workspace/teamspace/page or database groups on the left, pages/databases in the middle, and a readable document preview plus comments and metadata on the right. It supports pane focus, sortable headers, mouse selection, right-click actions, and a local/remote footer.

Distribution

Release packaging is managed with GoReleaser. Tagged releases build tarballs, checksums, .deb, .rpm, GitHub release notes, and a Homebrew tap update.

See docs/distribution.md for release operations.

Safety Model

Desktop mode is read-only. It snapshots Notion's local SQLite database before reading it and never writes to Notion application storage.

API mode uses the official Notion API. It stores raw API payloads alongside normalized rows so renderers can improve without recrawling.

Secrets are never exported into Markdown or git-share snapshots.