Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.gloo.com/llms.txt

Use this file to discover all available pages before exploring further.

Already invested in custom rules, agents, or skills for your current AI coding tool? You don’t have to start over. GlooCode’s custom agent system can express the same behaviors — different format, same ideas. This guide shows how to translate your existing configurations into GlooCode custom agents, with concrete before-and-after examples for each major tool.

How GlooCode Agents Work

Every custom agent in GlooCode is defined in ~/.config/gloocode/gloocode.json. Each agent has five fields:
FieldWhat it does
modeAlways "subagent" for custom agents
modelWhich Gloo AI model to use (e.g., gloo-anthropic-claude-sonnet-4.5)
descriptionA short summary — shown when listing agents, helps you remember what each one does
promptThe system prompt that defines the agent’s behavior
permissionWhat tools the agent can use (allow or deny per tool)
When you migrate a rule, skill, or agent from another tool, you’re primarily mapping its instructions into the prompt field and its access controls into the permission block. Switch to any custom agent mid-session by typing /<agent-name> in the TUI.
See Agents for the full configuration reference, including all permission types and model options.

From Cursor

Cursor stores project rules in .cursor/rules/*.mdc files (or the legacy .cursorrules file at the project root). Each rule has optional YAML frontmatter with description, globs, and alwaysApply fields, followed by Markdown instructions.

What maps to GlooCode

Cursor conceptGlooCode equivalent
.cursorrules / .cursor/rules/*.mdcprompt field in a custom agent
alwaysApply: true rulesInclude in your default agent’s prompt
globs-based rulesMention the file patterns in the prompt (e.g., “When working on *.test.ts files…”)
Model selection (per-workspace)model field per agent

Example migration

Before — .cursor/rules/testing.mdc:
---
description: Testing conventions for this project
globs: "**/*.test.ts,**/*.spec.ts"
---

When writing tests:
- Use Vitest, not Jest
- Prefer `describe` / `it` blocks over `test`
- Always test error cases, not just happy paths
- Mock external APIs, never hit real endpoints in tests
After — in ~/.config/gloocode/gloocode.json:
{
  "$schema": "https://gloocode.ai.gloo.com/config.json",
  "agent": {
    "test-writer": {
      "mode": "subagent",
      "model": "gloo-anthropic-claude-sonnet-4.5",
      "description": "Writes tests following project conventions.",
      "prompt": "You are a test-writing specialist. When writing tests:\n- Use Vitest, not Jest\n- Prefer `describe` / `it` blocks over `test`\n- Always test error cases, not just happy paths\n- Mock external APIs, never hit real endpoints in tests\n\nFocus on *.test.ts and *.spec.ts files.",
      "permission": {
        "glob": "allow",
        "grep": "allow",
        "read": "allow",
        "bash": "allow",
        "edit": "allow"
      }
    }
  }
}
Switch to it with /test-writer in the TUI.
If you have multiple Cursor rules that apply to different file types, you can create separate GlooCode agents for each — or combine related rules into a single agent with a longer prompt.

From Windsurf

Windsurf stores rules in .windsurf/rules/*.md files (or the legacy .windsurfrules file). Each file has YAML frontmatter with a trigger field (always_on, model_decision, glob, or manual) followed by Markdown content.

What maps to GlooCode

Windsurf conceptGlooCode equivalent
.windsurfrules / .windsurf/rules/*.mdprompt field in a custom agent
trigger: always_on rulesInclude in your default agent’s prompt
trigger: glob rulesMention the file patterns in the prompt
trigger: model_decision rulesUse the description field so you know when to switch agents
Global rules (~/.codeium/windsurf/memories/global_rules.md)Create a general-purpose custom agent

Example migration

Before — .windsurf/rules/security.md:
---
trigger: always_on
---

Security requirements for all code changes:
- Never log sensitive data (passwords, tokens, PII)
- Use parameterized queries, never string concatenation for SQL
- Validate all user input at system boundaries
- Use HTTPS for all external requests
After — in ~/.config/gloocode/gloocode.json:
{
  "$schema": "https://gloocode.ai.gloo.com/config.json",
  "agent": {
    "secure": {
      "mode": "subagent",
      "model": "gloo-anthropic-claude-sonnet-4.5",
      "description": "Security-focused code review and implementation.",
      "prompt": "You are a security-conscious coding agent. For all code changes:\n- Never log sensitive data (passwords, tokens, PII)\n- Use parameterized queries, never string concatenation for SQL\n- Validate all user input at system boundaries\n- Use HTTPS for all external requests\n\nFlag any existing violations you find while working.",
      "permission": {
        "glob": "allow",
        "grep": "allow",
        "read": "allow",
        "bash": "allow",
        "edit": "allow"
      }
    }
  }
}

From GitHub Copilot

GitHub Copilot uses .github/copilot-instructions.md for repository-wide instructions, .github/instructions/*.instructions.md for path-specific rules (with applyTo globs in frontmatter), and .github/agents/*.agent.md for custom agents.

What maps to GlooCode

Copilot conceptGlooCode equivalent
.github/copilot-instructions.mdprompt field in a general-purpose agent
.github/instructions/*.instructions.mdMention applyTo patterns in the prompt
.github/agents/*.agent.mdDirect 1:1 mapping to GlooCode custom agents
Agent tools fieldpermission block in GlooCode
Agent model fieldmodel field in GlooCode (use Gloo AI model IDs)

Example migration

Before — .github/agents/reviewer.agent.md:
---
name: reviewer
description: "Code reviewer focused on quality and security"
tools: ["read", "search"]
---

Review code changes for:
- Logic errors and edge cases
- Security vulnerabilities (injection, XSS, auth bypass)
- Performance issues (N+1 queries, unnecessary re-renders)
- Adherence to project conventions

Provide specific line-level feedback. Your verdict must be
APPROVE, REQUEST_CHANGES, or BLOCK.
After — in ~/.config/gloocode/gloocode.json:
{
  "$schema": "https://gloocode.ai.gloo.com/config.json",
  "agent": {
    "reviewer": {
      "mode": "subagent",
      "model": "gloo-anthropic-claude-sonnet-4.5",
      "description": "Code reviewer focused on quality and security.",
      "prompt": "Review code changes for:\n- Logic errors and edge cases\n- Security vulnerabilities (injection, XSS, auth bypass)\n- Performance issues (N+1 queries, unnecessary re-renders)\n- Adherence to project conventions\n\nProvide specific line-level feedback. Your verdict must be APPROVE, REQUEST_CHANGES, or BLOCK.",
      "permission": {
        "glob": "allow",
        "grep": "allow",
        "read": "allow",
        "bash": "allow",
        "edit": "deny"
      }
    }
  }
}
Notice the "edit": "deny" — the reviewer can read and analyze code but cannot modify files, matching the read-only intent of the original Copilot agent.

From Aider

Aider uses .aider.conf.yml for configuration and CONVENTIONS.md for project coding standards. Aider doesn’t have discrete agents — it uses a single model with conventions loaded as read-only context.

What maps to GlooCode

Aider conceptGlooCode equivalent
CONVENTIONS.mdprompt field in a custom agent
model in .aider.conf.ymlmodel field per agent
lint-cmd / test-cmdInclude in the prompt (e.g., “Run pytest after changes”)
auto-commits: trueGlooCode commits by default — same behavior

Example migration

Before — CONVENTIONS.md:
- Use httpx instead of requests for HTTP calls
- Type hints on all function signatures
- All public functions must have docstrings
- Use pytest for testing, aim for 80%+ coverage
- Prefer composition over inheritance
Before — .aider.conf.yml:
model: claude-sonnet-4-6
auto-lint: true
lint-cmd:
  - python: ruff check
test-cmd: pytest
After — in ~/.config/gloocode/gloocode.json:
{
  "$schema": "https://gloocode.ai.gloo.com/config.json",
  "agent": {
    "python": {
      "mode": "subagent",
      "model": "gloo-anthropic-claude-sonnet-4.5",
      "description": "Python development following project conventions.",
      "prompt": "Follow these project conventions:\n- Use httpx instead of requests for HTTP calls\n- Type hints on all function signatures\n- All public functions must have docstrings\n- Use pytest for testing, aim for 80%+ coverage\n- Prefer composition over inheritance\n\nAfter making changes, run `ruff check` to lint and `pytest` to verify tests pass.",
      "permission": {
        "glob": "allow",
        "grep": "allow",
        "read": "allow",
        "bash": "allow",
        "edit": "allow"
      }
    }
  }
}

From OpenAI Codex

Codex uses AGENTS.md files for project instructions (at multiple directory levels) and .codex/config.toml for model and permission settings. Codex doesn’t support custom agents as discrete entities.

What maps to GlooCode

Codex conceptGlooCode equivalent
AGENTS.md contentprompt field in a custom agent
model in config.tomlmodel field per agent
approval_policypermission block ("deny" for restricted tools)
sandbox_mode: read-onlySet "edit": "deny" and "bash": "deny"

Example migration

Before — AGENTS.md:
# Project Guidelines

## Architecture
This is a Next.js 15 App Router project with TypeScript strict mode.

## Conventions
- Server components by default, `'use client'` only when needed
- Use Zustand for client state, React Query for server state
- Tailwind CSS for styling, no arbitrary values
- All API routes go in `src/app/api/`

## Testing
- Vitest for unit tests, Playwright for E2E
- Run `bun test` before committing
After — in ~/.config/gloocode/gloocode.json:
{
  "$schema": "https://gloocode.ai.gloo.com/config.json",
  "agent": {
    "nextjs": {
      "mode": "subagent",
      "model": "gloo-anthropic-claude-sonnet-4.5",
      "description": "Next.js development following project architecture.",
      "prompt": "This is a Next.js 15 App Router project with TypeScript strict mode.\n\nConventions:\n- Server components by default, 'use client' only when needed\n- Use Zustand for client state, React Query for server state\n- Tailwind CSS for styling, no arbitrary values\n- All API routes go in src/app/api/\n\nAfter changes, run `bun test` before committing.",
      "permission": {
        "glob": "allow",
        "grep": "allow",
        "read": "allow",
        "bash": "allow",
        "edit": "allow"
      }
    }
  }
}

From Amazon Q Developer

Amazon Q uses .amazonq/rules/*.md files for project-level rules. Rules are plain Markdown (no YAML frontmatter required) and are automatically loaded as context.

What maps to GlooCode

Amazon Q conceptGlooCode equivalent
.amazonq/rules/*.mdprompt field in a custom agent
Rule priority levelsMention priority in the prompt (“These are critical requirements…”)
Toggle rules per sessionSwitch agents with /<agent-name>

Example migration

Before — .amazonq/rules/infrastructure.md:
# CDK Security Rules

## Instructions
- All S3 buckets must have encryption enabled
- All S3 buckets must enforce SSL connections
- All S3 buckets must block public access
- All DynamoDB tables must have encryption enabled
- All Lambda functions must have tracing enabled

## Priority
Critical — these are non-negotiable security requirements.
After — in ~/.config/gloocode/gloocode.json:
{
  "$schema": "https://gloocode.ai.gloo.com/config.json",
  "agent": {
    "infra": {
      "mode": "subagent",
      "model": "gloo-anthropic-claude-sonnet-4.5",
      "description": "Infrastructure code with security requirements.",
      "prompt": "When writing or reviewing infrastructure code, enforce these critical security requirements:\n- All S3 buckets must have encryption enabled\n- All S3 buckets must enforce SSL connections\n- All S3 buckets must block public access\n- All DynamoDB tables must have encryption enabled\n- All Lambda functions must have tracing enabled\n\nThese are non-negotiable. Flag any violations immediately.",
      "permission": {
        "glob": "allow",
        "grep": "allow",
        "read": "allow",
        "bash": "allow",
        "edit": "allow"
      }
    }
  }
}

Tips for Migration

Combine related rules. If you have five small Cursor rules that all relate to TypeScript conventions, combine them into a single GlooCode agent prompt rather than creating five separate agents. Use read-only agents for review. Any rule or agent that was meant to analyze without changing code should set "edit": "deny" in its permission block. Pick the right model for the job. GlooCode lets you assign different models to different agents. Use a stronger model (like gloo-anthropic-claude-sonnet-4.5) for complex review tasks and a faster model (like gloo-anthropic-claude-haiku-4.5) for simple linting or formatting checks. See Supported Models for all options. You can have as many agents as you want. There’s no limit on custom agents. Create specialized agents for different parts of your workflow — planning, reviewing, testing, documenting — and switch between them with /<name>. Prompts can be as long as you need. If your original rules file was 200 lines of detailed conventions, you can put all of that into the prompt field. Use \n for line breaks in the JSON string.

Agents Reference

Full configuration reference for custom agents — all fields, permissions, and model options.

Supported Models

Choose the right model for each agent based on your use case.