This guide covers the full path: issue triage → AI dev dispatch → CI → merged PR. You can stop at any step, every feature is independently useful.
We are in closed beta. There is no open registration, so the steps below start once your account is approved. If it is not yet, request access first, we approve in batches.
1. Sign in, then install the GitHub App
Sign in at app.developerz.ai. An approved account gets the GitHub App install link in the dashboard; grant it access to the repositories you want managed.
Installing the App from GitHub before your account is approved does nothing useful, the repositories simply sit unmanaged until the approval lands.
2. Add a .maintainer.yml
Create .maintainer.yml at your repository root:
# yaml-language-server: $schema=https://developerz.ai/schemas/maintainer.v1.json
version: 1
Committing the file is the opt-in, so know what those two lines turn on. Every
field is optional, but optional means the schema fills it in for you, not that it
stays off. A file carrying only version: 1 enables:
| Default | What it means |
|---|---|
pr.auto_merge: true |
the bot merges once the machine gates pass: CI green, a review verdict, and your branch protections. On free and OSS-verified accounts it stays opt-in and this default is forced off. |
pr.require_review: true |
it never merges a head nobody reviewed, which is what makes the review gate above real |
release.manager: release-please |
on merge it may cut tags and publish public GitHub Releases |
ci.enabled: true |
your CI jobs may be placed on your enrolled boxes (the runs-on: developerz-* label is still the per-workflow opt-in) |
ci.self_fix: true |
a red check on one of the bot's own PRs may be answered with a commit |
tone.voice: friendly, handoff.mode: none |
friendly triage, and no handoff to a coding agent until you configure one |
A repo with no .maintainer.yml runs hands-off instead: no auto-merge, no
releases. The difference is deliberate, writing the file is how you say yes. See
the .maintainer.yml reference for every field.
To start cautious and open up later, commit this instead. It is the no-file posture, stated explicitly, with everything else on:
# yaml-language-server: $schema=https://developerz.ai/schemas/maintainer.v1.json
version: 1
pr:
auto_merge: false
release:
manager: none
Editor autocomplete. The
yaml-language-servercomment wires the JSON Schema so you get validation and hover docs in VS Code, Cursor, and JetBrains.
3. Add your model key
developerz.ai is BYOK, bring your own key. We never proxy or resell tokens.
In the dashboard, go to Settings → Model keys and add your inference key:
| Provider | Key format |
|---|---|
| Anthropic | sk-ant-… |
| OpenAI | sk-… |
| Google Gemini | AIza… |
| OpenAI-compatible (custom endpoint) | any |
Your key is encrypted at rest and never logged. See the security doc.
4. Watch the first loop
Open a new issue in your repo. Within seconds the bot will:
- Read the issue and check for duplicates.
- Ask for reproduction steps if required fields are missing (configurable).
- Qualify the issue:
bug,feature,question, ordupe. - Hand off to your coding agent if
handoff.modeis set.
Every comment begins with the bot disclosure footer and is written to the audit log.
5. Enroll a box (AI devs + CI runners)
To run AI coding tasks or self-hosted CI, enroll a VPS or cloud VM:
# On your VPS, mint a token in Settings → Fleet → Add box, then:
read -rsp 'Enrollment token: ' DZ_ENROLL_TOKEN && DZ_JOIN="$(mktemp)" && \
curl -sfL -H "X-Dz-Enroll-Token: $DZ_ENROLL_TOKEN" \
https://api.developerz.ai/join -o "$DZ_JOIN" && bash "$DZ_JOIN"
The token travels in a header rather than a URL, and the script is downloaded to a
temp file and then run, not piped into bash, so a truncated download cannot
execute half an installer.
The installer prepares the box and enrols it. It does not start the runner
service yet, so the box does not appear in Fleet → Boxes on its own, see
after the join. The script's last line says
which state it left the box in, either box <id> is ONLINE or ENROLLED, BUT NOT BEATING along with the remaining step.
If you would rather not paste a secret at all, register the host and let the platform connect over SSH instead, see bring your own boxes.
Requirements
Ubuntu, on x86_64 / aarch64 / arm64. At least 3800 MiB of RAM (a
nominal 4 GB VM qualifies) and 20 GiB free on /, the installer checks both
before it downloads anything and refuses below either floor. No inbound ports are
needed.
6. Dispatch your first task
From Claude Code
Add the developerz.ai MCP server to your Claude Code config:
// .claude/settings.json
{
"mcpServers": {
"developerz": {
"command": "mcp-remote",
"args": ["https://mcp.developerz.ai"],
"env": { "MCP_BEARER_TOKEN": "dev_pat_…" }
}
}
}
Create a PAT at Settings → API tokens with write:tasks scope, then:
Hey Claude, use task_create to dispatch "add pagination to the user listing endpoint"
to owner/my-repo as a gh task.
The bot scouts the repo, dispatches the task to your coding agent, and watches the resulting PR and CI before requesting merge.
From Claude Desktop
Same MCP config. Add developerz to your claude_desktop_config.json:
{
"mcpServers": {
"developerz": {
"command": "mcp-remote",
"args": ["https://mcp.developerz.ai"],
"env": { "MCP_BEARER_TOKEN": "dev_pat_…" }
}
}
}
Then ask Claude Desktop to dispatch a task the same way.
From a phone (Claude mobile)
Claude mobile on iOS or Android adds developerz.ai as a connector via OAuth. the same flow Claude.ai on the web uses, no PAT to paste. See the MCP client onboarding page for the connector URL, the OAuth metadata document, and which clients are substantiated for mobile today.
For other mobile clients: any MCP-capable iOS or Android client that takes a
PAT works the same way the desktop clients do. Point it at
https://mcp.developerz.ai/v1/mcp with a Authorization: Bearer dev_pat_…
header. No iOS/Android-specific config ships in this repo beyond the OAuth
recipe for Claude mobile.
7. Enable CI runners
Change one line in any GitHub Actions workflow:
jobs:
test:
runs-on: developerz-2vcpu # was: ubuntu-latest
Push the change. The next workflow run routes to your enrolled box. Logs are stored
for 72 hours and downloadable from the dashboard or via the ci log_url MCP verb.
See the CI runners doc for the full security model and label reference.
8. Enable AI code review
Add a review: block to .maintainer.yml (or keep your existing .coderabbit.yaml
the reviewer reads both, with the native block taking precedence):
review:
profile: chill
anti_noise:
severity_floor: minor
max_comments: 30
The reviewer triggers on every push to a PR. See the AI review doc.
What happens next
| Feature | Where to go |
|---|---|
| Policy fields | .maintainer.yml reference |
| MCP verbs | MCP verb reference |
| AI review | AI code review |
| CI runners | Self-hosted CI |
| Artifact storage | Artifact storage |
| Realtime dashboards | Realtime dashboards |
| REST API | REST API |
| Escalations | Escalations |
| BYOK details | BYOK |
| Security | Security |
Every action is written to the append-only audit log. Nothing happens silently.