- Integrations
- Sinatra
Assign issues to Sinatra and draft pull requests




Overview
Sinatra is a background coding agent you assign Linear issues to. It clones the repository into its own sandbox, writes the code, runs your tests, opens a pull request on GitHub, and reports progress back on the issue. It runs on the Claude or ChatGPT subscription or API key your team already has. Sinatra never bills for model usage.
How it works
Assign an issue to Sinatra, or @mention it in a comment, and it picks the work up in a fresh, isolated cloud sandbox with the repository cloned in. If an issue is vague, it asks questions or proposes a plan on the issue, and carries on when you reply. Clear issues go straight to code.
While it works it posts progress on the issue as a single updating comment, so the thread stays readable. It writes the change, runs your project’s test command inside the sandbox, and opens a pull request on GitHub, linked back on the Linear issue. Before anyone reviews it, the agent reviews its own diff and posts what it found on the pull request, so reviewers start from a findings list instead of from zero.
Review comments on the pull request go back to the agent, which pushes fixes to the same branch. Sinatra never merges its own work; a human reviews and merges every pull request. It supports Claude and ChatGPT subscriptions as well as Anthropic and OpenRouter API keys. Per-repository behavior (model, test command, sandbox image) is configured in a .sinatrarc file.
Configure
- Create a workspace at app.sinatra.dev and install the Sinatra GitHub App on the repositories the agent may work in.
- In workspace settings, click Connect Linear and authorize Sinatra in your Linear workspace. You need to be an owner or admin of the Sinatra workspace, and a Linear admin to approve the app install.
- Connect a model: a Claude or ChatGPT subscription, or an Anthropic or OpenRouter API key. Free runs 1 task at a time, plus 1 queued, with no daily limit and no card.
- Assign an issue to Sinatra (or @mention it) and it starts. Optional per-repo settings live in .sinatrarc.
