> ## 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.

# Bring Your Skills

> Already have custom rules, agents, or skills in another AI coding tool? Here is how to bring them to GlooCode.

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:

| Field         | What it does                                                                       |
| ------------- | ---------------------------------------------------------------------------------- |
| `mode`        | Always `"subagent"` for custom agents                                              |
| `model`       | Which Gloo AI model to use (e.g., `gloo-anthropic-claude-sonnet-4.5`)              |
| `description` | A short summary — shown when listing agents, helps you remember what each one does |
| `prompt`      | The system prompt that defines the agent's behavior                                |
| `permission`  | What 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.

<Tip>
  See [Agents](/gloocode/agents) for the full configuration reference, including all permission types and model options.
</Tip>

***

## 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 concept                         | GlooCode equivalent                                                                    |
| -------------------------------------- | -------------------------------------------------------------------------------------- |
| `.cursorrules` / `.cursor/rules/*.mdc` | `prompt` field in a custom agent                                                       |
| `alwaysApply: true` rules              | Include in your default agent's prompt                                                 |
| `globs`-based rules                    | Mention 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`:**

```json theme={null}
{
  "$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.

<Tip>
  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.
</Tip>

***

## 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 concept                                              | GlooCode equivalent                                           |
| ------------------------------------------------------------- | ------------------------------------------------------------- |
| `.windsurfrules` / `.windsurf/rules/*.md`                     | `prompt` field in a custom agent                              |
| `trigger: always_on` rules                                    | Include in your default agent's prompt                        |
| `trigger: glob` rules                                         | Mention the file patterns in the prompt                       |
| `trigger: model_decision` rules                               | Use 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`:**

```markdown theme={null}
---
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`:**

```json theme={null}
{
  "$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 concept                          | GlooCode equivalent                               |
| ---------------------------------------- | ------------------------------------------------- |
| `.github/copilot-instructions.md`        | `prompt` field in a general-purpose agent         |
| `.github/instructions/*.instructions.md` | Mention `applyTo` patterns in the prompt          |
| `.github/agents/*.agent.md`              | Direct 1:1 mapping to GlooCode custom agents      |
| Agent `tools` field                      | `permission` block in GlooCode                    |
| Agent `model` field                      | `model` field in GlooCode (use Gloo AI model IDs) |

### Example migration

**Before — `.github/agents/reviewer.agent.md`:**

```markdown theme={null}
---
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`:**

```json theme={null}
{
  "$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 concept                | GlooCode equivalent                                        |
| ---------------------------- | ---------------------------------------------------------- |
| `CONVENTIONS.md`             | `prompt` field in a custom agent                           |
| `model` in `.aider.conf.yml` | `model` field per agent                                    |
| `lint-cmd` / `test-cmd`      | Include in the prompt (e.g., "Run `pytest` after changes") |
| `auto-commits: true`         | GlooCode commits by default — same behavior                |

### Example migration

**Before — `CONVENTIONS.md`:**

```markdown theme={null}
- 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`:**

```yaml theme={null}
model: claude-sonnet-4-6
auto-lint: true
lint-cmd:
  - python: ruff check
test-cmd: pytest
```

**After — in `~/.config/gloocode/gloocode.json`:**

```json theme={null}
{
  "$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 concept             | GlooCode equivalent                                |
| ------------------------- | -------------------------------------------------- |
| `AGENTS.md` content       | `prompt` field in a custom agent                   |
| `model` in `config.toml`  | `model` field per agent                            |
| `approval_policy`         | `permission` block (`"deny"` for restricted tools) |
| `sandbox_mode: read-only` | Set `"edit": "deny"` and `"bash": "deny"`          |

### Example migration

**Before — `AGENTS.md`:**

```markdown theme={null}
# 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`:**

```json theme={null}
{
  "$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 concept         | GlooCode equivalent                                                   |
| ------------------------ | --------------------------------------------------------------------- |
| `.amazonq/rules/*.md`    | `prompt` field in a custom agent                                      |
| Rule priority levels     | Mention priority in the prompt ("These are critical requirements...") |
| Toggle rules per session | Switch agents with `/<agent-name>`                                    |

### Example migration

**Before — `.amazonq/rules/infrastructure.md`:**

```markdown theme={null}
# 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`:**

```json theme={null}
{
  "$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](/api-guides/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.

## Related

<CardGroup cols={2}>
  <Card title="Agents Reference" icon="users" href="/gloocode/agents">
    Full configuration reference for custom agents — all fields, permissions, and model options.
  </Card>

  <Card title="Supported Models" icon="microchip" href="/api-guides/supported-models">
    Choose the right model for each agent based on your use case.
  </Card>
</CardGroup>
