isq
A CLI for GitHub, Linear & JIRA issues. Instant. Offline-first.
Why
Issue trackers shouldn't own your workflow.
GitHub is great until it isn't—until CI gets unreliable, until pricing changes break your setup, until you want to try Linear or self-host. Switching shouldn't mean relearning everything.
isq keeps your workflow separate from the tracker. Issues live locally. Same commands—GitHub, Linear, or whatever comes next.
Highlights
- Sub-millisecond reads from local cache
- Works offline, syncs when online
- GitHub + Linear + JIRA Cloud (Forgejo planned)
- Git worktree integration—your directory is your issue
--json on all commands
Install
curl -LsSf https://cameronwestland.com/isq/install.sh | sh
Or download directly from GitHub Releases.
Note: macOS and Linux only. Windows is not supported.
Troubleshooting
"command not found" after install
The installer places isq in ~/.local/bin if /usr/local/bin isn't writable.
Add it to your PATH:
# bash
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc
# zsh
echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.zshrc
Checksum verification failed
Re-run the installer. If it persists, download manually from GitHub Releases and verify the checksum.
Verifying releases
All release artifacts include SHA256 checksums and GitHub Artifact Attestations for supply chain security.
Verify checksum:
# After downloading isq-<target>.tar.gz and checksums.txt
grep "isq-<target>.tar.gz" checksums.txt | sha256sum -c
Verify attestation (requires GitHub CLI):
gh attestation verify isq-<target>.tar.gz --repo camwest/isq
This cryptographically proves the binary was built by our CI from the expected source code.
Updating
isq update check # Check if update is available
isq update install # Download and install latest version
Uninstalling
isq uninstall # Guided uninstall (stops daemon, removes data)
isq uninstall --keep-config # Preserve your views and settings
isq uninstall --dry-run # Preview what would be removed
Agent Skill
Teach your AI coding agent to use isq for issue management:
npx skills add camwest/isq
Works with Claude Code, Cursor, Codex, Windsurf, and other agents.
Quick Start
# Link your repo to GitHub, Linear, or JIRA
isq link github
isq link linear # Link using current Linear auth context
isq link linear -o list-teams # List teams in current Linear auth context
isq link linear -o team=ENG # Link a specific Linear team
isq link linear -o reauth -o team=ENG # Force fresh Linear auth for this repo
isq link jira # JIRA Cloud (OAuth or API token)
isq link jira -o list-projects # List available JIRA projects
isq link jira -o project=MYPROJ # Link to specific project
# List issues (instant, from cache)
isq issue list
isq issue list --label=bug --state=open
isq issue list --mine # Assigned to me
isq issue list --id 7,12,45 # Specific issues by ID
isq issue list --sort priority # Sort by priority (default)
# Hierarchy (when sub-issues exist, shows root issues by default)
isq issue list # Root issues only (hides sub-issues)
isq issue list --tree # Tree view with indentation
isq issue list --flat # Flat list including all sub-issues
isq issue list --children-of 42 # Children of issue #42
# Create, edit, comment, close
isq issue create --title "Fix login bug"
isq issue edit 423 --title "Fix login bug (network timeout)"
isq issue edit 423 --body - < findings.md # Read body from stdin
isq issue update 423 --title "..." # Alias for edit
isq issue comment 423 "Fixed in abc123"
isq issue close 423
# Pipe content from files or clipboard
cat description.md | isq issue create --title "Feature request"
pbpaste | isq issue comment 423
Development Workflow
isq integrates with git worktrees so your filesystem becomes your context. No more juggling issue IDs.
# Start working on an issue (creates worktree + branch)
$ isq start 891
Created worktree ~/src/myapp-891-fix-auth-timeout
Branch: 891-fix-auth-timeout
Running setup... done (2.1s)
Marked in progress
Issue #891: "Auth timeout on slow connections"
# Your current directory knows the issue
$ isq
#891 Auth timeout on slow connections open
───────────────────────────────────────────────────────────────────
Connections time out after 30s on slow networks...