Monitor Jira from an island on your Mac
Monitor Jira with the JQL you already write. New matches, status changes, comments, SLAs near a breach and sprint scope reach an island on your Mac, from Jira Cloud or Data Center.
What CoIsland watches in Jira
Each monitor kind brings its own query and its own card in the island.
-
Issues
Any JQL. An issue alerts when it starts matching.
-
Status changes
An issue alerts each time it lands in a new status.
-
Comments
Each new comment on the issues your JQL finds.
-
SLAs
Service requests that breached, or soon will, with breached() and remaining().
-
Sprint scope
Issues that join an open sprint, and which sprint.
How to monitor Jira from an island on your Mac
Jira emails you about every change on every issue you watch, and the one that matters hides among fifty that don’t. A CoIsland monitor runs one JQL search on a schedule and speaks up only about what changed. More in Jira notifications on Mac.
Each monitor is a ring in the island that counts down to its next check, with the number of matching issues under it. When an issue comes in, the island opens for a few seconds with the monitor’s sound, and the card lists new issues first: summary, key, status and reporter.
A monitor comes down to three choices:
- The JQL, as in Jira’s advanced search. It runs as the token’s account, so
currentUser()means you. - When it alerts. New issues appear, the default, stays quiet on the first check and then alerts for each issue that starts matching. Issue count crosses a threshold fires once when the rule becomes true, and again only after it has cleared.
- How often it checks: every 15 minutes by default, from 30 seconds to 30 days.
The editor saves each monitor as a file in ~/.coisland/watches, like every CoIsland monitor: settings in -- lines, then the JQL, on one line or several. Here is high-priority-bugs.sql:
-- name: High-priority bugs
-- kind: jira.issues
-- connector: acme
-- every: 15m
-- alert: new-rows
-- sound: Glass
project = OPS AND issuetype = Bug
AND priority in (Highest, High)
AND statusCategory != Done
A check reads up to 1,000 issues on Jira Cloud. When more match, CoIsland compares nothing and asks you to narrow the query, so a partial answer never fires.
Five Jira monitor kinds, with JQL that works
Each kind reads your JQL its own way, and six examples give you a query to start from.
Issues: a JQL alert for each new match
An issue alerts when it starts matching. CoIsland follows its ID, so a move to another project, which changes the key, does not alert twice; a reopened bug that matches again does. Besides the high-priority bugs above, the app suggests:
assignee = currentUser() AND statusCategory != Done
Status changes: hear when issues move
An issue alerts each time it is in a status it was not in at the last check, and the alert shows the move, such as In Progress → Done. A move dated more than an hour before the previous check stays quiet: the issue came back into the JQL, it did not just move.
project = OPS AND status CHANGED TO Done AFTER -1d
Comments: each new one on the issues you pick
Each new comment on the issues your JQL finds alerts. Jira Cloud sends each issue’s 20 newest comments with a search, so if more than 20 land on one issue between two checks, only the newest 20 alert.
watcher = currentUser() AND updated >= -2d
SLAs: Jira Service Management breach alerts
breached() finds requests whose last SLA cycle missed its goal. remaining() finds them by the time left before the goal, breached ones included, which is why the second query leaves those out to warn you 30 minutes ahead:
project = HELP AND "Time to resolution" = breached()
project = HELP
AND "Time to resolution" < remaining("30m")
AND "Time to resolution" != breached()
Use your own SLA names, such as “Time to first response”. Both functions exist on Jira Service Management Cloud and Data Center.
Sprint scope: what joins the active sprint
An issue alerts when it joins a sprint your JQL covers, and the alert names the sprint. It needs Jira Software’s Sprint field, which CoIsland finds on your site by itself.
project = APP AND sprint in openSprints()
What a Jira alert shows
An alert keeps the issues as they read when it fired, a status (new, acknowledged or resolved) and an activity log for notes. The 500 newest are kept.
Each issue is a card that fills in live from Jira: key, summary and status, type, priority, people, labels, the description as Jira renders it and the five latest comments. A status alert adds the move, a comment alert highlights the new comment. Open in Jira goes to the issue.
Work on it with an agent
The buttons under the alert start Claude Code, Codex or Cortex Code in a terminal, with the whole alert as the first message: facts, JQL, issues, comments and activity. It checks what it can, fixes what is safe and asks you before anything destructive. See agents, and CoIsland for engineering for Jira next to GitHub.
Jira Cloud and Jira Data Center
A Jira connector is one site and one account. The first is the default; a monitor can pick another under Runs on.
| Jira Cloud | Jira Data Center | |
|---|---|---|
| Site | https://your-team.atlassian.net |
Your address with its path, such as https://jira.example.com/jira |
| Signs in with | Atlassian email and API token | Personal access token, no email |
| Token from | id.atlassian.com › Security › API tokens | Avatar › Profile › Personal access tokens (Jira 8.14 or later) |
| Token lifetime | One year by default, one day to one year by choice | An optional expiry, set when you create it |
Test connector asks the site whether it is Cloud or Data Center, checks the form fits, signs in, and shows your name, email, edition and host.
The token stays in the macOS Keychain and goes only to your Jira site, over https://: no CoIsland server, no CoIsland account. If Jira answers a refused token with public results instead of an error, CoIsland reports the refusal. If a JQL typo returns no issues on Jira Cloud, it shows what Jira’s JQL parser says.
Connect Jira covers every field. The GitHub connector works the same way for code; all connectors share one page.
Connect it in three steps
-
Create an API token at id.atlassian.com (Cloud), or a personal access token in your Jira profile (Data Center).
-
Add a Jira connector with your site and, on Cloud, your email. Test connector signs in to check it.
-
Pick a monitor kind or an example, adjust the JQL, and choose when it alerts.
Built for Jira
- Jira Cloud and Jira Data Center, with your own JQL.
- Read only: it never edits, comments on or moves an issue.
- A refused token or a JQL typo is reported, never silent.
- The token stays in the macOS Keychain and goes only to your Jira site.
Then hand it to an agent
A click on the alert opens the agent in a terminal under it, with the whole alert as its first message.
-
Claude Code
Anthropic's coding agent, in its own CLI.
-
Codex
OpenAI's coding agent, in its own CLI.
-
Cortex Code
Snowflake's coding agent, in its own CLI.
Jira questions
How do I get Jira notifications on my Mac without the email flood?
Add a Jira connector in CoIsland, then a monitor with the JQL for what matters to you. It checks on its own schedule and opens the island only when an issue starts matching, moves, gets a comment or nears an SLA breach, depending on the kind you chose.
Can CoIsland alert me before a Jira Service Management SLA is breached?
Yes. Use an SLA monitor with a query such as "Time to resolution" < remaining("30m") AND "Time to resolution" != breached(). Each request alerts once, when it starts matching. It needs Jira Service Management, on Cloud or Data Center.
Does CoIsland work with Jira Data Center?
Yes. Enter your site's address with its path, such as https://jira.example.com/jira, leave the email empty and paste a personal access token. Jira Data Center and Server have them from version 8.14.
Do Jira Cloud API tokens expire?
Yes. Atlassian sets new API tokens to expire after one year by default, and you can choose from one day to one year when you create one. Once it expires, checks say the token was refused. Create a new token, add it as a connector and pick that connector under Runs on in each monitor.
Which JQL can a Jira monitor use?
Any JQL you can run in Jira's advanced search. It runs as the account the token belongs to, so currentUser() means you. Test runs it once and shows what would alert, before you save anything.
Will CoIsland alert me about every issue that already matches?
No. The first check learns what already matches and stays quiet; after that, only issues that start matching alert. A count rule is different, since it is about now. It alerts at once if the count already meets it.
How often does CoIsland check Jira?
Every 15 minutes unless you choose otherwise, from every 30 seconds to every 30 days, for each monitor on its own. Each check runs the monitor's JQL once.
Can an AI agent work on a Jira alert?
Yes. A click on Claude Code, Codex or Cortex Code under the alert starts that agent in a terminal, with the whole alert as its first message. It explains what happened and asks what you want before it runs a command or changes anything. CoIsland itself never changes your Jira issues.
Other connectors
-
Gmail
Hear about the emails that matter, not every email. Unread mail, chosen senders, labels, Drive comments and invitations reach an island on your Mac, and nothing is marked read.
-
Calendar
The calendars Calendar.app already shows (iCloud, Google, Exchange, subscriptions), or a calendar's secret ICS feed, in an island on your Mac. A countdown to your next meeting, a warning before it starts with one click to join, and news of invitations and changes.
-
Dock badges
One watch over every app that badges its Dock icon. Slack, Microsoft Teams, Outlook, Mail, Messages, Discord, WhatsApp or any other app tells the island when its count goes up, with no account or token for any of them.
-
Apple Mail
Every account Mail already has, iCloud, Exchange, Gmail or any IMAP, in an island on your Mac. New unread mail in your inboxes, or only from the people and domains you pick, with no password given to CoIsland.
-
GitHub
Monitor GitHub for what needs you, not everything that moves. Reviews, failed Actions runs, releases and security alerts, on github.com or GitHub Enterprise.
-
Vercel
Watch Vercel deployments, stuck builds and project domains. A failed build reaches an island on your Mac with its error, and the alert shows the failing step and the end of the build log.
-
GitLab
Watch GitLab on gitlab.com or a self-managed instance. A review request, a failed pipeline or a new to-do reaches an island on your Mac, and the alert shows the merge request with its description and comments, or the jobs that failed.
-
Cloudflare
Watch Cloudflare Pages deployments, Worker errors and your zones. A failed build reaches an island on your Mac with its failing step, and the alert shows the end of the build log.
-
Render
Watch the deploys of your Render services and whether they are suspended. A failed deploy reaches an island on your Mac with its commit, and a suspended service says who suspended it.
-
Docker
Know when a container on your Mac crashes, runs out of memory or can't start. The alert carries its last 30 log lines, and an agent you hand it to gets them too.
-
Local dev
See when two programs listen on the same port, a local server stops answering, or a process takes more memory or CPU than it should. Everything is read on this Mac, and nothing is sent anywhere.
-
Linear
Monitor Linear with its own issue filters. New matches, status changes, issues in triage, SLAs at risk, your mentions and projects going off track reach an island on your Mac.
-
Confluence
Monitor Confluence Cloud without the email digest. Mentions, page edits, new comments, your tasks and any CQL reach an island on your Mac, signed in with the same API token as Jira.
-
Asana
Know what landed on your plate and what is late. Tasks assigned to you, due dates, new tasks in a project and comments on your tasks reach an island on your Mac, read with your own Asana token.
-
ClickUp
Know what is yours and what is late. Tasks assigned to you, their status and due dates, and new tasks in a list reach an island on your Mac, read with your own ClickUp token.
-
Todoist
Know what is due before it is late. Tasks due today or overdue, new tasks in a project, or any filter you already use reach an island on your Mac, read with your own Todoist token.
-
Notion
Know when a Notion row lands on you, a page you care about changes, or someone comments. Read with your own personal access token, straight from your Mac.
-
Shortcut
Know when a story lands on you, moves to review, or an iteration is about to end with work still open. Read with your own Shortcut API token.
-
Airtable
Know when a record starts matching a formula, or someone edits one, without keeping the base open. Read with a personal access token scoped to the bases you pick.
-
Reminders
The reminders Reminders.app already has, iCloud or Exchange, in an island on your Mac. A warning before one is due, another when it is overdue, and news when someone adds to a list you share.
-
Sentry
Monitor Sentry with the searches you already write. New errors, regressions, issues assigned to you, failing crons, sites down and new releases reach an island on your Mac, from sentry.io or your own Sentry.
-
PagerDuty
Know at a glance whether you have to move. Incidents assigned to you, your teams' incidents and your on-call shifts reach an island on your Mac, read with your own PagerDuty token.
-
Datadog
Know when a Datadog monitor fires without living in the dashboard. Monitors in alert, incidents and metric thresholds reach an island on your Mac, read with your own application key.
-
New Relic
Run the NRQL you already trust, and see New Relic's alert issues the moment they open, in an island on your Mac, with your own User key.
-
Langfuse
Your LLM app fails, overspends or gets a thumbs down, and the island says so. Langfuse's errors, cost, latency and scores reach your Mac, read with a project's key pair on Langfuse Cloud or your own Langfuse.
-
Snowflake
Monitor Snowflake with read-only SQL. A failed task, a row that breaks a rule or a sudden spike reaches an island on your Mac, and Cortex Code, Claude Code or Codex can take it from there.
-
Databricks
Monitor Databricks from an island on your Mac. A failed job run, a failed pipeline update or a triggered SQL alert reaches you for free, and read-only SQL on a warehouse watches the data itself.
-
dbt
Monitor dbt from an island on your Mac. A job run that fails, a run that takes too long or a source that goes stale reaches you, with the failing step's log one click away.
-
PostHog
Monitor PostHog from an island on your Mac. A HogQL query that finds something, an insight crossing a number or an exception seen for the first time reaches you without opening a dashboard.
-
Supabase
Monitor Supabase from an island on your Mac. A paused or unhealthy project, a new security lint or a row your SQL finds reaches you, with nothing but a personal access token.
-
PostgreSQL
Monitor PostgreSQL from an island on your Mac. A read-only query checks your database on a schedule, and each new row it finds reaches you once.
-
MySQL
Monitor MySQL and MariaDB from an island on your Mac. A read-only query checks your database on a schedule, and each new row it finds reaches you once.
-
ClickHouse
Monitor ClickHouse from an island on your Mac. A read-only query, or a health check on the system tables, runs on a schedule, and each new problem reaches you once.
-
HTTP / JSON
Point CoIsland at any address. A JSON value that changes or crosses a threshold, a new element of a JSON list, or a page that goes down or starts saying "In stock" reaches an island on your Mac.
-
RSS / Atom
Watch any feed. A new GitHub release, a new post on a blog, or a Hacker News story that says your keyword reaches an island on your Mac, with the article one click away.
-
Status pages
Know when a service you depend on is down before your users tell you. Incidents, their updates, components going down and the page's overall status reach an island on your Mac.
-
Shell command
Run a command or a script on your Mac on a schedule. A new line it prints, a new object in its JSON, or a failure reaches the island once.
-
Stripe
Watch failed payments, disputes, subscriptions, payouts and your balance with a read-only restricted key. A declined card reaches an island on your Mac with the amount, the customer and the bank's reason.
Work with AI. Stay in control.
CoIsland Community is free, for good. Lifetime from $29, paid once. Native for Apple Silicon, macOS 14 and later.