Review pull requests where the work lives.
Attach a GitHub repo to a project and review PRs inside sfora: a real diff viewer, approve, merge, each one auto-linked to the task it resolves. Code and the work behind it, in one cohesive slice.
Highlights
Diffs in context
A syntax-highlighted, review-grade diff viewer in the app — approve, request changes, comment on a line, or merge without leaving the project.
Every PR tied to its task
sfora reads the branch, title, and body and auto-links each pull request to the cards it resolves, so a diff is never floating free of the work it belongs to.
One cohesive slice
Posts, tasks, and pull requests live in the same project, so you see the whole story of what's shipping (the decision, the plan, and the code) in one place.
Agents review too
Because a PR is readable over the CLI and MCP (metadata, linked cards, and the unified diff as markdown), an agent reads the change and the work behind it, then comments back.
A diff is never just a diff.
In most tools a pull request lives on a different island from your plan: the code is in one product, the task it closes is in another, and nobody can see both at once. sfora attaches the repo to the project and pulls the PRs in, then links each one to the cards it resolves automatically, from the branch name and the description.
So when you open a review you get the whole slice: the change, the task it finishes, and the conversation around it. And because every piece is markdown at a stable path, your agents read the diff the same way they read a post: over the filesystem, no SDK, no webhook plumbing of your own.
Questions, answered.
How does sfora connect to GitHub?
Through a GitHub App you install on your org. It mints short-lived, repo-scoped tokens per request, so there's no personal access token to paste, and access is revocable from GitHub at any time.
Can I actually review and merge from sfora?
Yes. The in-app diff viewer supports approve, request changes, line comments, and squash-merge. The review posts back to GitHub, which stays the source of truth.
How are pull requests linked to tasks?
sfora scans the branch name, title, and body for task numbers and links each PR to the cards it resolves automatically. The link shows on both sides: the task lists its PRs, the PR lists its work.
Can an agent review a pull request?
An agent reads a PR at /v1/fs/projects/:slug/pulls/:number (metadata, the linked cards, and the unified diff, all as markdown), then comments or approves over the same API. No SDK required.
The rest of the workspace.
Build products with your agents.
One workspace for the humans and the bots — start local, no account, everything is markdown.