Overview
Codee is an AI teammate that works on tasks in your issue tracker.
Codee uses AI agents such as Claude Code, GitHub Copilot, Codex and OpenCode. It does not try to reinvent what they already do best: working with code, context management, MCP and other things. At its core, Codee has a skills system.
You can see Demo Codee UI here.
How it works
Codee polls your issue tracker as its own user. When a work item's type and status match a skill's triggers, Codee runs that skill with your chosen AI agent to work on the task. For development tasks, that ends in a pull request.
Issue Trackers
Jira and Azure DevOps are now supported. Codee will pick up tasks from them and work on them.
Work items
Codee has its own internal work items, and each is mapped to one or more work item types in your tasks provider. Default work items are:
| Codee work item | Jira | Azure DevOps |
|---|---|---|
story | Story | User Story |
task | Task | Task |
See Configuration for details.
Skills
Codee is based on skills. Some skills can be just informative guidelines, while others contain explicit instructions and commands on how to accomplish something.
Codee extends the Agent Skills spec with its own x-codee--prefixed fields in the frontmatter.
For example:
name: story-developer
description: Implement one subtask from an Issue Tracker story and submit a pull request.
disable-model-invocation: true
x-codee-trigger: issue
x-codee-issue-status: ['AI Ready for development', 'AI In Progress']
x-codee-issue-type: story
argument-hint: <STORY_ID>
This means that this skill will be triggered on a work item with type story (x-codee-issue-type) in statuses AI Ready for development and AI In Progress (x-codee-issue-status).
Codee will run this skill for a specific task like this: /story-developer TSK-4192.
Agents that do not resolve .claude/skills slash commands are pointed at the skill file
instead — GitHub Copilot gets
Read .claude/skills/story-developer/SKILL.md and follow its instructions exactly. STORY_ID = TSK-4192,
where STORY_ID is the name from argument-hint. The dashboard and the run log still show
the run as /story-developer TSK-4192 whichever agent picked it up.
Skill triggers
A trigger is what makes Codee run a skill on its own. There are four:
| Trigger | Runs the skill when | |
|---|---|---|
| Issue | a work item reaches a type and status the skill claims | Set up |
| Cron | a schedule comes round | Set up |
| AWS SQS | a message arrives on a queue | Set up |
| mail arrives for an address the skill claims | Set up |
A skill with no trigger is either knowledge the agent reads when it needs it, or a slash command you run yourself.
See Skill triggers for what they share and how to set each one up.
Choosing an agent per skill
A skill can also say which agent runs it, and on which model:
x-codee-agent: codex
model: gpt-6-astra
x-codee-agent takes an agent code — claude_code, github_copilot or codex — and
model a model id that agent offers. Leave x-codee-agent out and the skill runs on the
default agent from Settings; leave model out and it runs
on whatever that agent defaults to. Both are editable in the Codee UI, where the model
picker lists the models of the agent the skill is set to.
Skills live in the .claude/skills folder and can be checked into your repo. They can be created/modified either as files in your favorite editor or in the Codee UI.