Integrations
Linear
Connecting Linear puts the cumulative AI cost of an issue's linked branch onto the issue itself, as an attachment in the sidebar. Nobody has to fill anything in, but it only works when the branch name carries the issue identifier.
Not generally available yet. The Linear integration is behind a feature flag, so it may not appear on your Integrations page. Connecting also depends on Lineman having registered a Linear OAuth application for your environment: if the connect button reports that Linear is not configured, that is the reason, and nothing you change in your own Linear workspace will fix it.
Connect your workspace
- 1In the Lineman dashboard, open Integrations and choose Linear, or go straight to
/dashboard/integrations/linear. - 2Press Connect. Linear asks you to authorise Lineman against a workspace, and you are returned to the integration page once you approve.
- 3There is nothing to install in your repositories and no custom field to add to your issues. Lineman writes one attachment per issue and nothing else.
- 4Enable at least one team. The integration page lists the teams in your workspace, all switched off. Nothing is written to any issue until you switch one on, because Lineman edits your issues and that should be your decision rather than a side effect of connecting. Costs start appearing on the next scheduled run after that.
How an issue picks up a cost
Attribution is entirely by branch name. Lineman looks for a Linear issue identifier, for example ENG-123, in the name of the branch the AI work happened on, and adds the cost of that work to that issue. There is no manual linking step and no ticket picker, so a branch that does not name an issue cannot be attributed to one.
Use the branch name Linear gives you. The copy-branch-name button on a Linear issue already produces a name containing the identifier, so a branch created that way is attributed without anyone thinking about it. A branch called fix-login-bug has no identifier in it, so its cost stays in Cost Explorer and never reaches an issue.
Where the number appears
The cost lands as an attachment in the issue sidebar, not as a comment. That is deliberate. The issue thread is where people talk, and a figure that moves every time someone runs an agent would bury the discussion under updates nobody asked for.
- Updates replace, they do not stack. However many times the total changes, the sidebar keeps one Lineman attachment showing the latest figure.
- It is the whole issue, not you. The figure covers everyone who worked on the linked branch, so two people on the same branch produce one combined number rather than one each.
Reading the number
- Amounts are in US dollars. Lineman shows money in dollars everywhere, never cents, so the attachment can be compared directly with what you see in Cost Explorer.
- It is cumulative. The figure is everything spent on the linked branch so far, not the cost of the last session, so it only rises while work on the issue continues.
- It is not instant. The attachment is refreshed on a scheduled run, and only when the total has actually changed, so cost recorded a few minutes ago will not be on the issue yet.
If an issue never shows a cost
- Check a team is switched on. A freshly connected workspace has every team switched off, so nothing is written anywhere until you enable one. This is the most likely reason a new connection looks like it is doing nothing.
- Check the branch name first. No issue identifier in the branch name means no attribution, and this is by far the most common cause.
- Check the identifier is a Linear one. A key belonging to another tracker, such as a Jira key, is left alone rather than guessed at, so it will never appear on a Linear issue.
- Check there is spend to show. An issue whose branch has recorded no AI cost gets no attachment at all, rather than an attachment reading zero.
- Check what the connect button says. If it reports that Linear is not configured, the OAuth application has not been registered for your environment and connecting cannot succeed until it is.