Project Management
Connect FlyDocs to Linear, Jira, or other PM tools through the relay API for automated issue management.
FlyDocs connects to your project management tool through the relay API. Scripts in your project call the relay, the relay resolves your workspace configuration, translates the request into provider-specific API calls, and returns a standardized response. Your workflow stays the same regardless of which PM tool you use.
How the Relay Works
The relay API is the translation layer between FlyDocs' unified operations and provider-specific APIs. It handles authentication, status mapping, label sync, and response normalization so scripts never deal with provider differences directly.
Request Flow
Scripts call the relay → relay resolves workspace config → translates to provider API → returns standardized response
Status mapping
FlyDocs workflow statuses (Triage, Ready, Implementing, Review, Testing/QA, Done) map to your provider's actual status names. This mapping is configured at the workspace level during setup.
{
"statusMapping": {
"BACKLOG": "Backlog",
"READY": "Todo",
"IMPLEMENTING": "In Progress",
"BLOCKED": "On Hold",
"REVIEW": "Internal Review",
"TESTING": "QA",
"COMPLETE": "Done"
}
}
When a script transitions an issue to REVIEW, the relay looks
up the mapping and sends the provider the corresponding status name. Your
team sees native statuses in their PM tool while FlyDocs maintains a
consistent lifecycle.
Label sync
FlyDocs uses category labels (feature, bug, chore, idea) that map to your
provider's label system. Labels are synced during workspace setup and kept
consistent through the workspace.py refresh-labels command.
Linear
Connect via API key in the FlyDocs portal. Select your team, configure status mapping, and FlyDocs handles the rest through its GraphQL adapter.
Setup
- Generate a personal API key from Linear Settings → API
- Add it to your environment:
LINEAR_API_KEY=lin_api_xxxxxin.env - Run
flydocs connectand select Linear as your provider - Choose your team and configure status mapping
Supported operations
| Category | Operations |
|---|---|
| Issues | Create, read, update, delete, transition, assign, comment |
| Planning | Estimates, priorities, labels, milestones, cycles |
| Project | Project updates, status summaries, health reports |
| Queries | List by status, assignee, project, milestone, or activity |
Example
python3 .claude/skills/flydocs-workflow/scripts/issues.py create \
--title "Add user avatar upload" \
--type feature \
--priority 2 \
--estimate 3 Jira
Connect via OAuth in the FlyDocs portal. Select your project, configure status mapping, and FlyDocs handles the rest through its REST adapter.
Setup
- Open the FlyDocs portal and navigate to workspace settings
- Select Jira under project management providers
- Authorize via OAuth and select your Jira site
- Choose your project and configure status mapping
Supported operations
| Category | Operations |
|---|---|
| Issues | Create, read, update, delete, transition, assign, comment |
| Planning | Estimates, priorities, labels, versions, sprints |
| Project | Project updates, status summaries |
| Queries | JQL-based queries filtered by status, assignee, project, or sprint |
Example
python3 .claude/skills/flydocs-workflow/scripts/issues.py transition \
PROJ-456 REVIEW "All acceptance criteria met, ready for code review" Additional Providers
The relay architecture is designed for provider expansion. Each new provider needs an adapter that translates FlyDocs operations into the provider's API. The script interface and workflow stay identical — switching providers does not change your workflow.
Planned providers:
- GitHub Issues — native issue tracking for teams already on GitHub
- Notion — database-backed issue management
- ClickUp — task and project management
- Asana — work management for cross-functional teams
- GitLab Issues — integrated with GitLab version control
- Trello — board-based workflow management
Join the Discord to request a provider or follow development progress.
The Unified Client
Under the hood, all PM operations go through a unified client
(flydocs_api.py) that reads the tier from
.flydocs/config.json and routes automatically:
- Cloud tier: routes to the relay API, which calls Linear, Jira, or whichever provider is configured
- Local tier: routes to the local file backend for offline issue tracking
Scripts never check tier. The client handles routing transparently. This
means the same issues.py create command works whether you are
connected to Linear, Jira, or running locally with no PM tool at all.
Next
- Version Control: GitHub, GitLab, and Bitbucket setup
- AI Coding Tools: how your IDE connects to FlyDocs
- Local Mode: file-based tracking without a PM tool