Introduction
Learn what syncdown does, what it syncs, and which workflow to start with.
Introduction
syncdown pulls content from external services and saves it as local Markdown files on your filesystem.
Many AI workflows talk to tools like Notion, Gmail, or Google Calendar directly through MCP or provider APIs. That is flexible, but repeated remote reads are often slower and more token-expensive than working from local files.
syncdown is designed for people who want their notes and messages outside the browser: in a local folder they can search, back up, sync, feed into another tool, or index with local search tooling such as qmd. It also gives them one place to manage information that would otherwise stay scattered across multiple services.
Today, syncdown includes:
- a full-screen TUI for setup and day-to-day sync control
- headless config commands for automation and remote environments
- a Notion connector for pages and databases you've allowed the Notion connection to access
- a Gmail connector for
Primaryinbox messages - a Google Calendar connector for selected calendars and event/series exports
- local Markdown rendering into connector-scoped files
What it does
At a high level, syncdown helps you:
- Connect supported services such as Notion, Gmail, and Google Calendar.
- Choose a local output directory.
- Fetch content from those services.
- Write one Markdown file per source into a predictable folder structure.
That makes it useful for local knowledge bases, archives, search indexing, backups, and personal workflows built around plain files.
What you can sync
Notion
- Pages you've allowed the Notion connection to access
- Pages returned from databases you've allowed the Notion connection to access
- Token-based auth
- OAuth-based auth
Gmail
- One Markdown file per message
- Google OAuth
Primaryby default, with optionalPrimary + Important- Incremental updates using Gmail history IDs
Google Calendar
- One Markdown file per event or recurring series
- Shared Google OAuth
- Selected-calendar sync
- Incremental updates using per-calendar sync tokens
What the output looks like
Rendered files are grouped by connector so they stay easy to inspect.
Typical paths look like this:
notion/pages/project-plan-<source-id>.md
notion/databases/tasks/task-item-<source-id>.md
gmail/account-example-com/2026/03/weekly-update-<message-id>.md
google-calendar/primary/2026/03/team-sync-<event-id>.mdEach document starts with YAML frontmatter that preserves connector metadata and source-specific fields. The exact fields depend on the connector.
---
title: "Project Plan"
source: "https://www.notion.so/..."
created: "2026-03-17T01:23:45.000Z"
updated: "2026-03-17T04:56:00.000Z"
database: "Tasks"
status: "In Progress"
due_date: "2026-03-20"
---
# Project Plan
- Confirm scope
- Assign owners
- Track due datesChoose your path
- Use Getting Started if you want the fastest install plus TUI-based setup path.
- Use Configuration if you want a headless CLI setup flow.
- Use CLI if you want the command reference.