Skip to main content
Sources are data integrations that appear as folders in your Airstore filesystem. Connect a source once, then browse and query it like a local directory.

Available sources

SourceCommandWhat you get
Gmailairstore connect gmailEmails as .eml files
Google Driveairstore connect gdriveDocuments, spreadsheets, PDFs
GitHubairstore connect githubRepos, PRs, issues, diffs
Linearairstore connect linearIssues, projects, comments
Notionairstore connect notionPages, databases
Slackairstore connect slackMessages, threads
Custom MCPairstore mcp add ...Any MCP server

Connecting a source

airstore connect <source>
This opens your browser for OAuth authentication. Once authorized, the source appears in your filesystem:
ls ~/airstore/sources/
# gmail  github  gdrive

Source structure

Each source has a default folder structure based on its data model:
~/airstore/sources/
├── gmail/
│   ├── inbox/
│   ├── sent/
│   └── [smart folders you create]
├── github/
│   ├── acme/
│   │   └── api/
│   │       ├── issues/
│   │       └── pulls/
│   └── [smart folders you create]
└── gdrive/
    ├── My Drive/
    └── [smart folders you create]

Creating smart folders

Query any source using natural language:
airstore create sources/gmail/investor-emails \
  --query "emails from investors in the last 30 days"

airstore create sources/github/urgent-prs \
  --query "open PRs with more than 5 comments"

airstore create sources/gdrive/contracts \
  --query "PDF files containing 'agreement' from 2024"

Managing sources

# List connected sources
airstore sources list

# Disconnect a source
airstore disconnect gmail

# Re-authenticate (if token expired)
airstore connect gmail --reauth

Source permissions

By default, Airstore requests read-only permissions. Some sources offer write capabilities through tools.
SourceReadWrite (via tools)
GmailEmails, labelsSend, label, archive
GitHubRepos, PRs, issuesCreate issues, comment, merge
LinearIssues, projectsCreate/update issues
DriveFiles, foldersUpload, move, delete
NotionPages, databasesCreate/update pages
SlackMessagesPost messages, react

Next steps