Skip to main content
Airstore exposes two types of integrations: sources (data you read) and tools (actions you take). Both appear in the filesystem but behave differently.

Sources

Sources are data integrations. They appear as folders under ~/airstore/sources/.
SourceWhat it provides
GmailEmails as .eml files
Google DriveDocuments, spreadsheets, PDFs
GitHubRepos, PRs, issues, diffs
LinearIssues, projects, comments
NotionPages, databases
SlackMessages, threads
Key characteristics:
  • Read-only: You can read files, but not write to them
  • Browsable: Navigate like a normal filesystem
  • Queryable: Create smart folders with natural language
  • Cached: Reads hit materialized views, not live APIs
# Browse a source
ls ~/airstore/sources/gmail/inbox/

# Read a file
cat ~/airstore/sources/gmail/inbox/001-meeting-invite.eml

# Create a smart folder
airstore create sources/gmail/urgent \
  --query "unread emails marked important"

Tools

Tools are action integrations. They appear as executables under ~/airstore/tools/.
ToolWhat it does
githubCreate issues, comment on PRs, merge
linearCreate/update issues, change status
slackPost messages, react, create channels
Key characteristics:
  • Executable: Run them like CLI commands
  • Write-capable: Perform actions that modify external systems
  • Pipeable: Chain together with Unix pipes
  • JSON output: Structured data you can parse
# List available tools
ls ~/airstore/tools/

# Run a tool
~/airstore/tools/github create-issue \
  --repo=acme/api \
  --title="Bug: Login fails" \
  --body="Steps to reproduce..."

# Pipe output
cat issue.json | ~/airstore/tools/linear create-issue

Why the separation?

The distinction matters for: Permissions: You might want an agent to read emails but not send them. Sources are read-only by default; tools require explicit enablement. Mental model: Sources are nouns (data). Tools are verbs (actions). This maps cleanly to how agents think about tasks. Caching: Sources benefit from materialized views. Tools execute immediately against live APIs.

Using them together

The real power comes from combining sources and tools:
# Read from a source, act with a tool
cat ~/airstore/sources/gmail/support-tickets/001.eml | \
  ~/airstore/tools/linear create-issue --project="Support"

# Let Claude orchestrate
cd ~/airstore
claude "Read the support emails and create Linear issues for each one"
Claude can read the sources (files) and invoke the tools (executables) as needed.

Next steps