Overview
Engineering teams increasingly run more than one AI agent: one in the editor, one in the terminal, one reviewing pull requests. Each typically asks for its own GitHub token, and each forgets what the others have done.
Kroy connects to GitHub once. Every authorised agent works through Kroy, which holds the credentials, decides what each agent may do, and keeps a shared record of the work in progress in Kroy State — so the agent that picks up a task knows what the previous one changed and why.
Permissions
Each GitHub action is a Kroy capability. Kroy decides every request against the person, the agent, the delegation between them and the organisation’s policies.
A typical policy lets an agent read code, open issues, create branches and open pull requests. Merging, creating a release and running a workflow require a named person to approve. Policies can be set per repository, so an agent may open pull requests on the documentation site but only read the payments service.
Shared state across agents
When Claude Code finishes a change and Codex is asked to review it, both read the same Kroy State: the task, the branch, the decisions taken and what remains. The review does not start from nothing, and neither agent needs access to the other’s session.
Releases and deployments
Kroy can take part in a release workflow: an agent prepares release notes from merged pull requests, a person approves the release, and Kroy creates it. For websites published with Kroy Publish, a merge or an approved publication can trigger a deploy hook on hosting such as Cloudflare.
Industries
Technology companies and in-house development teams are the obvious fit. Professional firms with small internal tools teams can use the same controls to let AI help with scripts and internal systems without granting it write access to everything.
Security
Kroy holds the GitHub App credentials. Agents receive results, never tokens. Revoking an agent’s Kroy access removes its GitHub access immediately, and every request — including refusals, such as an attempted merge without approval — is recorded with the person, agent and repository involved.