Back to dashboardAgent setup
Plug agents in, keep status hopping.
bunny.fyi
Agent Instructions
Copy this English instruction document and give it directly to Cursor, Codex, or Claude Code so the agent can post status updates to the monitoring API during work.
For service, pipeline, crawler, deployment, or health monitoring.
Mode guidance
Use this mode when you are reporting the ongoing state of a service, system, bot, crawler, deployment, or pipeline.
Choose this mode when
For service, pipeline, crawler, deployment, or health monitoring.
Send updates when
- periodically while the system is being monitored, for example every few minutes
- when the monitored system enters a new health state
- when key metrics materially change
- immediately when warnings or failures appear
- when a degraded or failed system returns to healthy status
Recommended schema choices
Subject type guidance
`subjectType` should describe the monitored entity, such as `service`, `system`, `pipeline`, `job`, `deployment`, `crawler`, or `bot`.
Recommended status values
- healthy for normal operation
- warning for degraded operation or partial issues
- failed for incidents, outages, or hard failures
- in_progress for rollouts, syncs, or transitional activity
Recommended view types
- status_card for current operating status
- metric_grid for health indicators and headline metrics
- table for structured operational rows
- log_stream for execution output or diagnostic logs
- alert for high-signal failures or urgent warnings
Instruction document
Copy and paste this whole block into the target development agent.
https://www.bunny.fyi/api/recordstest_agent_key_local_123Cursor / Codex / Claude Code
# Agent Status Reporting Instructions
## Overview
This document is intended for development-focused AI agents such as Cursor, Codex, and Claude Code.
Always send structured system status updates to the bunny.fyi status API while monitoring this service, system, pipeline, job, or automation. You may send updates even if no new task has started.
Reporting mode: System Status
Use this mode when you are reporting the ongoing state of a service, system, bot, crawler, deployment, or pipeline.
## Important rules
- Never send the example payload unchanged.
- Always replace example values with real values from the current monitored system, service, pipeline, job, or automation.
- Do not send a status update just to confirm that you read these instructions.
- Generate a fresh current ISO timestamp for every update.
- Use `complete` only when you are reporting a monitored run, pipeline, or job that has actually finished.
- Choose identifiers carefully:
- `projectId`: the real current product, system, or environment name
- `agentId`: the actual agent you are running as, such as `cursor`, `codex`, or `claude_code`
- `subjectId`: the real monitored service, system, pipeline, deployment, crawler, bot, or job identifier
## When to send updates
Send an update:
- periodically while the system is being monitored, for example every few minutes
- when the monitored system enters a new health state
- when key metrics materially change
- immediately when warnings or failures appear
- when a degraded or failed system returns to healthy status
## API endpoint
https://www.bunny.fyi/api/records
## Authentication
Use this API key:
test_agent_key_local_123
Send the key in either of these ways:
- Authorization: Bearer test_agent_key_local_123
- x-api-key: test_agent_key_local_123
## Payload example
Send POST requests with JSON payloads similar to the example below.
Fields may be omitted if they are not relevant.
{
"projectId": "<current-product-or-environment-name>",
"agentId": "<current-agent-name>",
"subjectId": "<current-service-or-crawler-id>",
"subjectType": "<service|system|pipeline|job|deployment|crawler|bot>",
"title": "<short monitored system title>",
"summary": "<short health or operating-state summary for humans viewing the dashboard>",
"status": "healthy",
"viewType": "status_card",
"timestamp": "<current-iso-timestamp>",
"data": {
"notes": [
"<important health or state note>",
"<optional metric or warning note>"
],
"staleAfterMinutes": 60,
"checks": [
{ "label": "Last crawl", "value": "running normally", "status": "healthy" },
{ "label": "Queue depth", "value": "18 pending", "status": "healthy" }
]
}
}
## Recommended status values
- healthy for normal operation
- warning for degraded operation or partial issues
- failed for incidents, outages, or hard failures
- in_progress for rollouts, syncs, or transitional activity
## Recommended view types
- status_card for current operating status
- metric_grid for health indicators and headline metrics
- table for structured operational rows
- log_stream for execution output or diagnostic logs
- alert for high-signal failures or urgent warnings
## Identifier guidance
`subjectType` should describe the monitored entity, such as `service`, `system`, `pipeline`, `job`, `deployment`, `crawler`, or `bot`.
## Example data shapes
### status_card
{
"notes": [
"Started implementation",
"Auth helper completed"
],
"checks": [
{ "label": "API auth", "value": "done", "status": "complete" },
{ "label": "Instructions page", "value": "in progress", "status": "in_progress" }
],
"staleAfterMinutes": 120
}
### timeline
{
"events": [
{
"at": "2026-03-14T10:00:00.000Z",
"label": "Work started",
"description": "Initial implementation began."
},
{
"at": "2026-03-14T10:30:00.000Z",
"label": "Milestone complete",
"description": "API authentication check was added."
}
]
}
### metric_grid
{
"metrics": [
{ "label": "Files changed", "value": 12, "unit": "" },
{ "label": "Tests passing", "value": 24, "unit": "" },
{ "label": "Coverage", "value": 87, "unit": "%" }
],
"highlights": [
"Core implementation is complete.",
"One follow-up check remains."
]
}
### log_stream
{
"lines": [
{
"at": "2026-03-14T10:05:00.000Z",
"level": "info",
"message": "Fetching current route files."
},
{
"at": "2026-03-14T10:06:00.000Z",
"level": "warn",
"message": "Build retry required after import error."
}
]
}
### table
{
"columns": [
{ "key": "step", "label": "Step" },
{ "key": "owner", "label": "Owner" },
{ "key": "state", "label": "State" }
],
"rows": [
{ "step": "Auth helper", "owner": "codex", "state": "complete" },
{ "step": "Instructions page", "owner": "codex", "state": "in_progress" }
]
}
### checklist
{
"items": [
{
"label": "Define API key config",
"description": "Shared config exported for page and backend.",
"checked": true,
"status": "complete"
},
{
"label": "Build instructions page",
"description": "Visible page and copy button still in progress.",
"checked": false,
"status": "in_progress"
}
]
}
### alert
{
"severity": "failed",
"alerts": [
{
"title": "Build failed",
"description": "Type error detected in the API route.",
"source": "build",
"code": "TS_BUILD_ERROR"
}
]
}
## Guidelines
- Keep every update short and clear.
- Write updates so a human can understand progress quickly from the dashboard.
- Focus on progress and state instead of deep code details.
- Prefer meaningful milestone updates over noisy low-value chatter.