home / skills / andrejones92 / canifi-life-os / roam-research
/skills/roam-research
npx playbooks add skill andrejones92/canifi-life-os --skill roam-researchReview the files below or copy the command above to add this skill to your agents.
---
name: roam-research
description: Enables Claude to create, link, and query notes in Roam Research via Playwright MCP
category: productivity
---
# Roam Research Skill
## Overview
Claude can manage your Roam Research database to capture thoughts, create bidirectional links, build a networked knowledge base, and query your notes. A tool for networked thought.
## Quick Install
```bash
curl -sSL https://canifi.com/skills/roam-research/install.sh | bash
```
Or manually:
```bash
cp -r skills/roam-research ~/.canifi/skills/
```
## Setup
Configure via [canifi-env](https://canifi.com/setup/scripts):
```bash
# First, ensure canifi-env is installed:
# curl -sSL https://canifi.com/install.sh | bash
canifi-env set ROAM_EMAIL "[email protected]"
```
## Privacy & Authentication
**Your credentials, your choice.** Canifi LifeOS respects your privacy.
### Option 1: Manual Browser Login (Recommended)
If you prefer not to share credentials with Claude Code:
1. Complete the [Browser Automation Setup](/setup/automation) using CDP mode
2. Login to the service manually in the Playwright-controlled Chrome window
3. Claude will use your authenticated session without ever seeing your password
### Option 2: Environment Variables
If you're comfortable sharing credentials, you can store them locally:
```bash
canifi-env set SERVICE_EMAIL "your-email"
canifi-env set SERVICE_PASSWORD "your-password"
```
**Note**: Credentials stored in canifi-env are only accessible locally on your machine and are never transmitted.
## Capabilities
- Create daily notes and pages
- Build bidirectional links
- Create block references
- Query with Roam queries
- Use templates and workflows
- Create TODO items
- Add page references
- Use attributes and metadata
- Create tables
- Embed blocks and pages
- View graph overview
- Use keyboard shortcuts
## Usage Examples
### Example 1: Add to Daily Note
```
User: "Add 'Met with John about the project' to today's Roam note"
Claude: Opens daily note, adds block with content.
Confirms: "Added to today's daily note"
```
### Example 2: Create Page
```
User: "Create a page for Project Alpha with key details"
Claude: Creates [[Project Alpha]] page, adds initial content.
Returns: "Created Project Alpha page"
```
### Example 3: Search Links
```
User: "Find all pages linking to Machine Learning"
Claude: Checks backlinks for [[Machine Learning]].
Reports: "12 pages reference Machine Learning: Neural Networks, Deep Learning..."
```
### Example 4: Query Notes
```
User: "Find all my TODOs from this week"
Claude: Runs query for TODO items with date filter.
Reports: "8 TODOs this week: Review proposal, Update docs..."
```
## Authentication Flow
1. Claude navigates to roamresearch.com via Playwright MCP
2. Enters ROAM_EMAIL for authentication
3. Handles 2FA if required (notifies user via iMessage)
4. Maintains session for graph operations
## Selectors Reference
```javascript
// Daily notes
'.roam-article'
// Block
'.rm-block'
// Block content
'.rm-block__input'
// Page title
'.rm-title-display'
// Sidebar
'.roam-sidebar'
// Search
'.bp3-input'
// Linked references
'.rm-reference-container'
// Block reference
'.rm-block-ref'
// Page reference
'.rm-page-ref'
// TODO checkbox
'.check-container'
```
## Roam Syntax
```
[[Page Link]] // Link to page
((block-id)) // Block reference
#tag // Tag
{{TODO}} // TODO item
{{[[TODO]]}} // TODO with page link
**bold** // Bold text
__italics__ // Italic text
^^highlight^^ // Highlight
{{embed: [[page]]}} // Embed page
{{query: {and:...}}} // Roam query
```
## Error Handling
- **Login Failed**: Retry 3 times, notify user via iMessage
- **Session Expired**: Re-authenticate automatically
- **Page Not Found**: Create page or ask user
- **Block Failed**: Retry, check graph sync
- **Query Error**: Check query syntax, suggest fix
- **Sync Issues**: Wait and retry
## Self-Improvement Instructions
When you learn a better way to accomplish a task with Roam:
1. Document the improvement in your response
2. Suggest updating this skill file with the new approach
3. Include specific linking strategies
4. Note useful query patterns
## Notes
- Bidirectional links are automatic
- Block references for reusable content
- Daily notes as capture inbox
- Graph view shows connections
- Roam queries for dynamic content
- Keyboard-driven interface
- Version history available
- JSON export for backup