Turn Linear issues into local agent sessions.

June is a Linear-native orchestrator for Claude Code, Codex, OpenCode, Antigravity, and Hermes. Comment on an issue to steer the same local session; stdout becomes the final Linear reply.

Install

npx june-linear@latest setup

Why it exists

One session per Linear issue

The first webhook starts an agent session; every comment after that resumes it. Switch labels to flip between Claude / Codex / OpenCode / Antigravity / Hermes — each runner has its own resumable session.

BYO runner CLI

No vendor lock-in. June spawns the runner CLI you already have logged in on the host. Five supported out of the box; add another by writing one ~200-line runner module.

Self-hosted, MIT-licensed

No SaaS. Runs on a Linux VPS, a Mac mini, or your laptop. Linear is the only outbound dependency; the webhook ingress is whatever you can stand up (cloudflared / ngrok / tailscale / your reverse proxy).

The important constraint

June is webhook-driven. A sleeping laptop drops or delays the experience, so the recommended setups are a Linux VPS (€4–8/mo) or a dedicated Mac mini left plugged in. A laptop works while it's open and on power — fine for trying it out, not great for unattended runs.

The deployment guide covers all three: where to run it → (includes the macOS pmset recipe for never-sleep, auto-login after a power blip, and clamshell mode for laptops).

How a turn looks

  1. You file or comment on a Linear issue.
  2. The Linear webhook hits your June — HMAC-verified, deduped.
  3. June spawns the runner CLI per the issue's label, with the prompt the orchestrator built from the issue + thread.
  4. While the agent works, it streams short progress comments back. You can steer it by replying.
  5. On exit, the agent's stdout is posted as the final comment. The issue moves to Ready for Review or Blocked.

Full mechanics in concepts. The CLI surface is jun setup, jun start, jun stop, jun status, jun logs, jun doctor, jun install-service, jun config — see setup for the walkthrough.

License

MIT. Source on GitHub.