projectsync-cli
v1.0.0
Published
<p align="center"> <img src=".github/assets/banner.svg" alt="projectsync-cli banner" width="800"/> </p>
Downloads
26
Maintainers
Readme
projectsync-cli
Unified project management CLI — sync issues across Linear, Jira, GitHub Issues, and Asana from your terminal.
Provider pattern with mock data fallback. No API keys required to try it out. --json flag on every command for CI/scripting.
Install
npm install -g projectsync-cli
# or run without installing:
npx projectsync-cli listArchitecture
graph LR
A[terminal] --> B[projectsync CLI]
B --> C[provider factory]
C --> D[Linear adapter]
C --> E[Jira adapter]
C --> F[GitHub adapter]
C --> CA[Asana adapter]
C --> G[Mock adapter]
D --> H[results]
E --> H
F --> H
CA --> H
G --> H
H --> I[formatters]
I --> J[human-readable output]
H --> K[--json flag]
K --> L[JSON output]Commands
Free Commands (7)
projectsync list
List issues with optional filters.
projectsync list
projectsync list --project "Backend API" --status open
projectsync list --assignee alice --label bug --limit 10
projectsync list --jsonOptions:
--project <name>— filter by project name--status <status>— filter by status (open, in-progress, done)--assignee <user>— filter by assignee--label <label>— filter by label--limit <n>— max issues to return (default: 20)--json— output as JSON
projectsync get <issue-id>
Get detailed information about an issue.
projectsync get ISS-1
projectsync get ISS-7 --jsonOptions:
--json— output as JSON
projectsync create
Create a new issue.
projectsync create --title "Fix login bug"
projectsync create --title "Dark mode" --description "Add dark mode toggle" --project "Frontend App" --labels feature --assignee bob --priority high
projectsync create --title "Critical fix" --jsonOptions:
--title <title>— issue title (required)--description <text>— issue description--project <name>— project name--labels <labels>— comma-separated labels--assignee <user>— assign to user--priority <level>— priority (critical, high, medium, low)--json— output as JSON
projectsync update <issue-id>
Update an existing issue.
projectsync update ISS-1 --status done
projectsync update ISS-2 --title "New title" --assignee charlie --priority low
projectsync update ISS-3 --labels bug,urgent --jsonOptions:
--title <title>— new title--status <status>— new status--assignee <user>— new assignee--labels <labels>— comma-separated labels--priority <level>— new priority--description <text>— new description--json— output as JSON
projectsync search <query>
Search issues by keyword.
projectsync search "login"
projectsync search "dark mode" --limit 5 --jsonOptions:
--limit <n>— max results (default: 20)--json— output as JSON
projectsync projects
List all projects.
projectsync projects
projectsync projects --jsonOptions:
--json— output as JSON
projectsync labels
List all labels.
projectsync labels
projectsync labels --jsonOptions:
--json— output as JSON
Pro Commands (6)
Pro commands require a PRO_LICENSE environment variable. Get one at craftpipe.dev/projectsync-cli.
projectsync sprint list
List sprints.
projectsync sprint list
projectsync sprint list --project "Backend API" --jsonprojectsync sprint create
Create a new sprint.
projectsync sprint create --name "Sprint 4" --start 2026-02-01 --end 2026-02-14
projectsync sprint create --name "Sprint 5" --start 2026-02-15 --end 2026-02-28 --project "Mobile App" --jsonprojectsync sprint add <sprint-id>
Add issues to a sprint.
projectsync sprint add spr-2 --issues ISS-1,ISS-2,ISS-3projectsync bulk-update
Bulk update multiple issues at once.
projectsync bulk-update --issues ISS-1,ISS-2,ISS-3 --status done
projectsync bulk-update --issues ISS-4,ISS-5 --assignee alice --priority high --jsonprojectsync analytics
Issue analytics and metrics.
projectsync analytics
projectsync analytics --project "Backend API" --days 14 --jsonprojectsync report
Cross-project report.
projectsync report
projectsync report --projects "Backend API,Frontend App" --jsonprojectsync grooming
Backlog grooming analysis — find stale, unassigned, and duplicate issues.
projectsync grooming
projectsync grooming --project "Backend API" --stale-days 14 --jsonprojectsync automation
Workflow automation with rules.
projectsync automation --rule "status:done->label:shipped"
projectsync automation --rule "priority:critical->assignee:alice" --jsonProviders
Set PROJECTSYNC_PROVIDER to choose a provider, or let it auto-detect from available credentials.
| Provider | Env Vars Required |
|----------|-------------------|
| mock | None (default) |
| linear | LINEAR_API_KEY |
| jira | JIRA_URL, JIRA_EMAIL, JIRA_TOKEN |
| github | GITHUB_TOKEN, GITHUB_OWNER, GITHUB_REPO |
| asana | ASANA_ACCESS_TOKEN, ASANA_WORKSPACE_GID |
# Use mock data (no API keys needed)
PROJECTSYNC_PROVIDER=mock projectsync list
# Auto-detect from credentials
LINEAR_API_KEY=lin_xxx projectsync list
# Explicit provider
PROJECTSYNC_PROVIDER=jira projectsync listJSON Output
Every command supports --json for CI/scripting:
projectsync list --json | jq '.[].title'
projectsync analytics --json > report.jsonExit Codes
| Code | Meaning |
|------|---------|
| 0 | Success |
| 1 | Error (missing args, API failure, etc.) |
| 2 | Threshold failure |
Pro License
6 commands require a pro license. Set the PRO_LICENSE environment variable:
export PRO_LICENSE=your-license-key
projectsync analytics --jsonGet a license at craftpipe.dev/projectsync-cli.
Development
git clone https://github.com/craftpipe/projectsync-cli.git
cd projectsync-cli
npm install
npm run build
npm testLicense
MIT
