NewThe agent now drafts PRs in your repo  →

The issue tracker that triages itself.

Tern reads every new issue in under a minute. It sets priority, picks the owner and writes the spec. When the fix is small, it opens the PR too.

Start free Book a demo Free for teams up to 10. Imports from Linear and Jira.

Used by 1,400 product teams who would rather ship than sort tickets.

Ledgerline NORTHCAP orbitwise Halden & Co Parapet quill.
Triage

New issues land sorted. Not in a pile.

  • 58 seconds median time from filed to triaged
  • Finds duplicates across every team and repo
  • Shows its reasons, so you can say no in one click
Priority with a reason
The agent reads the report, the logs and your SLAs, then says why.
PriorityUrgent
Why3 customers paid twice
Impact$1,862 in 30 days
The right owner, first time
It routes by who wrote the code, not by who is on the rota.
DODana Okafor4 commits
MKMarcus Kim1 commit
TATomas Alvesreviewer
One issue, not five
Reports from Zendesk, Slack and Sentry merge into the issue that already exists.
SentryTypeError in checkout
Zendesk"Pay button does nothing"
Merged into WEB-233
Specs and PRs

Bug report in. Draft PR out.

  • Specs list the steps, the files and the tests
  • PRs run your CI before a person looks
  • Nothing merges without a human review

Spec · Stop double refund credits

PAY-412 · written by Tern agent · accepted by Dana Okafor
Steps
  1. Send an idempotency key on every refund call
  2. Treat a 409 from Stripe as success
  3. Add a unique index on refund ledger entries
  4. Reverse the 3 extra credits, email merchants
Done when
Retry test covers the 409 path
Second credit fails at the database
Support confirms merchants were told
#2291 refund_worker.ts+38 −11
  async function sendRefund(refund) {-   const res = await stripe.refunds.create(body)+   const res = await stripe.refunds.create(body, {+     idempotencyKey: refund.id,+   })    if (res.status === 409) {-     throw new RetryableError(res)+     return settleExisting(refund.id)    }  }
212 tests pass Lint clean Awaiting review from Dana
58s
Median time to triage
71%
Agent picks kept as is
3.2×
More bugs closed per cycle
0
PRs merged without a human
“We used to lose Monday to triage. Now the queue is sorted before I log in, and half the small bugs already have a PR waiting.”
PS
Priya ShahHead of Engineering, Ledgerline
Pricing

Pay per seat. The agent comes with it.

Free
$0
For small teams trying it out.
  • Up to 10 members
  • 250 agent triages a month
  • GitHub and Slack
Start free
Team Most picked
$12per seat / month
For teams that ship every week.
  • Unlimited triage
  • Specs written by the agent
  • 20 draft PRs per seat
  • Zendesk and Sentry intake
Start 14-day trial
Business
$24per seat / month
For several teams and repos.
  • Unlimited draft PRs
  • Rules per team and repo
  • SAML and audit log
  • Priority support
Start 14-day trial
Enterprise
Custom
For strict security needs.
  • Run the agent in your cloud
  • Your own model keys
  • SOC 2 Type II, DPA
Talk to sales

Stop sorting tickets. Start closing them.