Context Mode Output Sandbox
mksglu/context-mode
Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.
Quick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server.
$ npx skills add LanternOps/breeze --skill ai-agent -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install LanternOps/breeze ai-agent --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ai-agent .claude/skills/ai-agent && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ai-agent" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ai-agent into .claude/skills/ai-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-agent", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/LanternOps/breeze/tree/main/.claude/skills/ai-agentType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add LanternOps/breeze --skill ai-agent -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install LanternOps/breeze ai-agent --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/ai-agent .agents/skills/ai-agent && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ai-agent" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ai-agent into .agents/skills/ai-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-agent", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LanternOps/breeze --skill ai-agent -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install LanternOps/breeze ai-agent --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/ai-agent .cursor/skills/ai-agent && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ai-agent" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ai-agent into .cursor/skills/ai-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-agent", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/LanternOps/breeze.git --path .claude/skills/ai-agent--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add LanternOps/breeze --skill ai-agent -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install LanternOps/breeze ai-agent --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/ai-agent .gemini/skills/ai-agent && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ai-agent" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ai-agent into .gemini/skills/ai-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-agent", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install LanternOps/breeze ai-agentInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add LanternOps/breeze --skill ai-agent -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/ai-agent .github/skills/ai-agent && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ai-agent" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ai-agent into .github/skills/ai-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-agent", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add LanternOps/breeze --skill ai-agent -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install LanternOps/breeze ai-agent --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/LanternOps/breeze.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/ai-agent .opencode/skills/ai-agent && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ai-agent" agent skill from https://github.com/LanternOps/breeze/tree/main/.claude/skills/ai-agent into .opencode/skills/ai-agent/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ai-agent", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ai-agentQuick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server.
AI Agent is an agent skill from LanternOps/breeze. Quick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server. Use when working on AI features, debugging chat issues, adding new tools, or understanding the AI data flow.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Agent Workflows, covering MCP servers and LLM cost and token optimization. It works with Model Context Protocol. The repository describes itself as: The open-source IT platform that comes with the workers. RMM + PSA in one system, with a governed AI operator built in. The licence is AGPL-3.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 1f72bb7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
claudeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
AI Agent loads about 3.7k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 1,143 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from LanternOps/breeze at commit 1f72bb7, republished under its AGPL-3.0 licence (© LanternOps). 1,143 words, ~3,739 tokens.
.claude/skills/ai-agent/SKILL.md (or your agent's skills folder).Integrated AI agent allowing IT technicians to manage devices, troubleshoot issues, analyze security, and build automations through natural language chat.
External Clients (Claude Desktop, Cursor)
| MCP over Streamable HTTP (legacy SSE kept)
v
+---------------------------+
| Breeze MCP Server | /api/v1/mcp/* (API Key auth)
+---------------------------+
|
+------------------------------------------------------------------+
| Hono API Server |
| |
| AI Chat Routes MCP Server Routes |
| /api/v1/ai/* /api/v1/mcp/* |
| | | |
| +--------------------------------------------------+ |
| | AI Agent Service (aiAgent.ts) | |
| | Anthropic SDK + In-Process Tool Execution | |
| | | |
| | AI tool registry (aiTools*.ts) | |
| | getToolDefinitions() supplies the current tools | |
| +--------------------------------------------------+ |
| | | | |
| Existing Services commandQueue.ts Event Bus (Redis) |
+------------------------------------------------------------------+
| |
PostgreSQL Go Agent (on devices)| File | Purpose |
|---|---|
apps/api/src/db/schema/ai.ts | 5 tables: aiSessions, aiMessages, aiToolExecutions, aiCostUsage, aiBudgets |
apps/api/src/services/aiAgent.ts | Core agent service — session lifecycle, Anthropic API calls, SSE streaming, tool dispatch, approval polling |
apps/api/src/services/aiTools.ts | The AI tool registry (~200 tools across aiTools*.ts; getToolDefinitions() is the count), with Zod schemas and org-scoped access via AuthContext.orgCondition() |
apps/api/src/services/aiGuardrails.ts | 4-tier permission system: auto-execute, audit, approval-required, blocked |
apps/api/src/services/aiCostTracker.ts | Token/cost tracking, budget enforcement, rate limiting, usage summaries |
apps/api/src/routes/ai.ts | REST + SSE chat endpoints (/api/v1/ai/*) |
apps/api/src/routes/mcpServer.ts | External MCP server for Claude Desktop/Cursor (/api/v1/mcp/*) |
| File | Purpose |
|---|---|
apps/web/src/stores/aiStore.ts | Zustand store — sessions, messages, streaming, context, approval state |
apps/web/src/components/ai/AiChatSidebar.tsx | Slide-out panel (right side), session management, conversation history |
apps/web/src/components/ai/AiChatMessages.tsx | Scrollable message list with markdown rendering |
apps/web/src/components/ai/AiChatInput.tsx | Auto-resize textarea, Cmd+Enter send |
apps/web/src/components/ai/AiToolCallCard.tsx | Collapsible tool invocation display with input/output |
apps/web/src/components/ai/AiApprovalDialog.tsx | Approve/Reject card for Tier 3 tool executions |
apps/web/src/components/ai/AiContextBadge.tsx | Shows current page context injected into chat |
apps/web/src/components/ai/AiCostIndicator.tsx | Token usage + budget remaining (with polling circuit breaker) |
apps/web/src/components/settings/AiUsagePage.tsx | Admin dashboard for AI usage and budget configuration |
apps/web/src/pages/settings/ai-usage.astro | Astro page wrapper for AI usage admin |
| File | Purpose |
|---|---|
packages/shared/src/types/ai.ts | TypeScript interfaces: AiSession, AiMessage, AiToolExecution, AiPageContext, AiStreamEvent |
packages/shared/src/validators/ai.ts | Zod schemas for AI page context and message validation |
5 tables in apps/api/src/db/schema/ai.ts:
| Table | Key Columns | Purpose |
|---|---|---|
ai_sessions | orgId, userId, status, model, turnCount, totalCostCents | Multi-turn conversations |
ai_messages | sessionId, role, content, toolName, toolInput, toolOutput | Message history |
ai_tool_executions | sessionId, toolName, status, approvedBy, commandId | Tool audit trail |
ai_cost_usage | orgId, period, periodKey, inputTokens, outputTokens, totalCostCents | Daily/monthly cost aggregates |
ai_budgets | orgId, enabled, monthlyBudgetCents, dailyBudgetCents, maxTurnsPerSession | Per-org budget config |
Enums: ai_session_status (active/closed/expired), ai_message_role (user/assistant/system/tool_use/tool_result), ai_tool_status (pending/approved/executing/completed/failed/rejected)
/api/v1/ai/*)| Method | Path | Purpose |
|---|---|---|
| POST | /sessions | Create session (with optional page context) |
| GET | /sessions | List user's sessions (filterable by status) |
| GET | /sessions/search | Search past conversations (must be before :id route!) |
| GET | /sessions/:id | Get session with message history |
| DELETE | /sessions/:id | Close session |
| POST | /sessions/:id/messages | Send message, returns SSE stream |
| POST | /sessions/:id/approve/:executionId | Approve/reject tool execution |
| GET | /usage | Usage + budget summary for org |
| PUT | /budget | Update budget settings |
| GET | /admin/sessions | Session history for admin dashboard |
/api/v1/mcp/*)| Method | Path | Auth | Purpose |
|---|---|---|---|
| GET | /sse | API Key (ai:*) | SSE transport (server→client) |
| POST | /message | API Key (ai:*) | JSON-RPC messages (client→server) |
Session ownership validated — each SSE session tracks apiKeyId. Max 100 sessions, 30-min TTL.
Events emitted by POST /sessions/:id/messages:
type AiStreamEvent =
| { type: 'message_start'; messageId: string }
| { type: 'content_delta'; delta: string }
| { type: 'tool_use_start'; toolName: string; toolUseId: string; input: Record<string, unknown> }
| { type: 'tool_result'; toolUseId: string; output: unknown; isError: boolean }
| { type: 'approval_required'; executionId: string; toolName: string; input: Record<string, unknown>; description: string }
| { type: 'message_end'; inputTokens: number; outputTokens: number }
| { type: 'error'; message: string }
| { type: 'done' };Use the registry in apps/api/src/services/aiTools.ts (getToolDefinitions()) for the current tools and count, and the generated prompt index renderToolIndexByDomain(listChatSurfaceToolNames()) composed in apps/api/src/services/aiAgent.ts for the tools registered on the chat surface.
| Helper | Purpose |
|---|---|
verifyDeviceAccess(deviceId, auth, requireOnline?) | Device lookup + org condition check |
findAlertWithAccess(alertId, auth) | Alert lookup + org condition check |
getCommandQueue() | Cached dynamic import of commandQueue module |
getToolTier(toolName) | Returns numeric tier for guardrails |
executeTool(toolName, input, auth) | Main dispatch — throws for unknown tools |
Every shaped list/search tool adds one additive envelope on top of its existing keys, built by the shared helper in apps/api/src/services/aiToolPagination.ts — never a bespoke per-tool shape.
readPageArgs/pageEnvelope) — stable lists (devices, tickets, patches, scripts, policies, …): limit, offset, optional cursor; result adds showing, hasMore, nextCursor (and total/totalMode where the query already counts).readKeysetArgs/keysetEnvelope) — churn tables where an insert between pages would shift offsets (alerts, agent logs, audit log, change log): limit, cursor (no offset); sorted (col DESC, id DESC) on a microsecond-precision timestamp column carried as text in the cursor, never round-tripped through JS Date. A cursor minted for different filters is refused with CURSOR_MISMATCH, not silently reset to page 1.settings/details, script bodies, nested sub-arrays) are dropped from the default page behind an opt-in flag (e.g. includeDetails) or left to the matching get_* detail tool, with a <key>Count in their place.compactToolResultForChat (aiToolOutput.ts) learns whether a tool can page through an injected resolver (setToolPaginationHintResolver, installed by aiTools.ts after registration) — never by importing the tool registry directly. Its _chat.nextStep hint and the array-truncation sentinel only ever suggest pagination to a tool that actually supports it.pageParamSchema()/pageZodShape() (or the keyset equivalents) on all three input-schema surfaces — the registry definition.input_schema, aiToolSchemas.ts (or aiToolSchemasFleet.ts), and the tool() Zod shape in aiAgentSdkTools.ts (plus scriptBuilderTools.ts if the tool has its own SDK shape there) — or the model gets a parameter the schema strips and pages nowhere.read_artifact (aiToolsArtifacts.ts) pages a stored oversized result back by byte offset via artifact.handle in an earlier tool result. It only reads an artifact captured by the caller's own chat session or agent run (never any session of the same user), and only works on hosted deployments with the AI workspace enabled — capture stores the redacted payload, never raw. MCP tools/call has no session anchor today, so read_artifact called over MCP typically refuses with no_capture_anchor.Defined in aiGuardrails.ts:
| Tier | Behavior | Examples |
|---|---|---|
| 1 | Auto-execute | query_devices, get_device_details, analyze_metrics, query_audit_log |
| 2 | Auto-execute + audit log | manage_alerts(acknowledge/resolve), manage_services(list) |
| 3 | Requires user approval (5-min timeout) | execute_command, run_script, file writes, service start/stop |
| 4 | Blocked | Unknown tools, auth modifications |
Action-based escalation: TIER3_ACTIONS maps tool+action combos that escalate (e.g., file_operations.write escalates from T1 to T3).
aiAgent.ts inserts aiToolExecutions record with status 'pending'approval_required event with tool name, input, descriptionAiApprovalDialog inline in chatPOST /sessions/:id/approve/:executionIdwaitForApproval() polls DB every 2s with circuit breaker (max 5 consecutive DB errors)'executing', tool runs, result returnedIn aiCostTracker.ts:
| Function | Purpose |
|---|---|
calculateCostCents(model, inputTokens, outputTokens) | Claude pricing math |
checkBudget(orgId) | Pre-message budget check (fails closed on DB errors) |
checkAiRateLimit(userId, orgId) | 20 msg/min per user, 200 msg/hr per org |
recordUsage(sessionId, orgId, model, inputTokens, outputTokens, isToolExecution) | Atomic transaction: session update + daily/monthly aggregate upserts |
updateBudget(orgId, settings) | Upsert budget configuration |
getUsageSummary(orgId) | Daily + monthly usage + budget for admin dashboard |
getSessionHistory(orgId, { limit, offset }) | Session list for admin |
Model pricing (cents per million tokens):
claude-sonnet-4-5-20250929: 300 input / 1500 outputclaude-haiku-4-5-20251001: 100 input / 500 outputFrontend pushes context to aiStore.setPageContext():
type AiPageContext =
| { type: 'device'; id: string; hostname: string; os?: string; status?: string; ip?: string }
| { type: 'alert'; id: string; title: string; severity?: string; deviceHostname?: string }
| { type: 'dashboard'; orgName?: string; deviceCount?: number; alertCount?: number }
| { type: 'custom'; label: string; data: Record<string, unknown> };Context is injected into the system prompt and sent with each message. The AiContextBadge component shows it visually in the chat header.
1. User types message in AiChatInput
2. aiStore.sendMessage(content)
- Creates session if needed (POST /sessions)
- Adds user message optimistically
- POST /sessions/:id/messages with SSE stream
3. API receives message
- checkAiRateLimit() — fail closed on Redis error
- checkBudget() — fail closed on DB error
- Insert user message to ai_messages
- Build Anthropic messages array from conversation history
- Call Anthropic API with tools + system prompt
4. Stream processing (generator function)
- Yield message_start, content_delta events
- On tool_use: check guardrails
- Tier 1-2: execute immediately
- Tier 3: insert execution record, yield approval_required, wait
- Tier 4: return error
- Yield tool_result events
- On message_end: recordUsage() in transaction
- Yield done
5. Frontend processes SSE events via processStreamEvent()
- Updates Zustand store incrementally
- Shows tool cards, approval dialogs, streaming textwaitForApproval breaks after 5 consecutive DB poll failuresescapeLike() helper prevents SQL wildcard injection in searchrecordUsage uses db.transaction() for atomicityapiKeyId to prevent cross-session injectionAiCostIndicator stops after 5 failures or auth errors/sessions/search registered before /sessions/:id in Hono# Claude Code MCP connection
claude mcp add --transport http breeze-rmm https://your-breeze-instance.example.com/api/v1/mcp/sse \
--header "X-API-Key: brz_your_api_key_here"API key needs ai:read, ai:write, or ai:execute scopes.
© LanternOps, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/ai-agent of LanternOps/breeze.
Open the folder on GitHubat commit 1f72bb7
AI Agent next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| AI Agent this skillLanternOps/breeze | 130 | — | ~3.7k | Automated safety check: Pass | AGPL-3.0 | |
| Context Mode Output Sandboxmksglu/context-mode | 26k | — | ~4.1k | Automated safety check: Pass | Custom licence | |
| Context Mode for Antigravity CLImksglu/context-mode | 26k | — | ~850 | Automated safety check: Pass | Custom licence | |
| Connectactiveing123/mcptoon | 214 | 1 repos | ~701 | Automated safety check: Pass | Apache-2.0 | |
| Entroly Context Controljuyterman1000/entroly | 472 | — | ~501 | Automated safety check: Pass | Apache-2.0 | |
| Authoringactiveing123/mcptoon | 214 | — | ~559 | Automated safety check: Pass | Apache-2.0 |
mksglu/context-mode
Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.
mksglu/context-mode
Routing rules for using context-mode MCP tools in Antigravity CLI: sandboxed code runs, file analysis, indexed search and web fetches that keep large output out of the conversation.
activeing123/mcptoon
Connect any AI agent to MCP servers through mcptoon — one config synced everywhere, one stdio gateway, 99.2% fewer tokens on tool discovery.
juyterman1000/entroly
Surgically select, compress, and recover codebase context using Entroly's MCP tools.
activeing123/mcptoon
Add or edit an MCP server entry in mcptoon's config correctly — stdio/streamable-http/sse shapes, command rules, placeholders, and validation.
juyterman1000/entroly
Audit and remediate Entroly's MCP marketplace quality with evidence, adversarial validation, and no score gaming.
LanternOps/breeze
Quick reference for the Breeze RMM Go agent architecture, commands, configuration, build process, and data flows.
LanternOps/breeze
A skill your agent uses when debugging agent issues, investigating agent errors, checking agent connectivity, or reviewing agent diagnostic logs.
LanternOps/breeze
Quick reference for the Breeze Helper Tauri desktop app — architecture, Rust backend commands, React frontend, config files, IPC with the Go agent, helper chat API routes, tool approval flow, and…
LanternOps/breeze
A skill your agent uses when running a broad manual/AI-driven end-to-end verification of Breeze RMM across many merged PRs or commits — "test everything since the last release", release-readiness…
LanternOps/breeze
A skill your agent uses when orchestrating Breeze implementation work from this seat — dispatching waves or issue fixes to background sessions, deciding whether an open PR gets merged, handling a…
LanternOps/breeze
A skill your agent uses when reviewing, triaging, or managing the incoming GitHub backlog on the Breeze repo — PRs, Discussions, AND Issues.
Works with
Categories
Quick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server. AI Agent is an agent skill from LanternOps/breeze. Quick reference for the Breeze RMM AI Agent system architecture, MCP tools, streaming chat, cost tracking, guardrails, and MCP server.
AI Agent fits situations like: working on AI features; debugging chat issues; adding new tools; understanding the AI data flow.
Run `npx skills add LanternOps/breeze --skill ai-agent -a claude-code`. Or copy the skill folder (.claude/skills/ai-agent in LanternOps/breeze) into .claude/skills/ai-agent in your project. Claude Code loads it when a task matches its description.
Run `npx skills add LanternOps/breeze --skill ai-agent -a codex`. Or copy the skill folder (.claude/skills/ai-agent in LanternOps/breeze) into .agents/skills/ai-agent in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add LanternOps/breeze --skill ai-agent -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ai-agent, .gemini/skills/ai-agent, .github/skills/ai-agent and .opencode/skills/ai-agent in your project.
Going by SKILL.md and its folder, AI Agent needs the command-line tools its instructions call (claude).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
AI Agent is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with AI Agent: Context Mode Output Sandbox (mksglu/context-mode, 26k stars), Context Mode for Antigravity CLI (mksglu/context-mode, 26k stars), Connect (activeing123/mcptoon, 214 stars) and Entroly Context Control (juyterman1000/entroly, 472 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
LanternOps (a GitHub organization) maintains it in LanternOps/breeze, which has 130 GitHub stars. The repository holds 14 skills in this directory. The repository was last updated on October 7, 2026.
Source: LanternOps/breeze on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.