A multi-agent framework for GitHub Copilot built around composable, symbiotic AI agents. Each agent in Symdicate has a well-defined cognitive identity — purpose, reasoning style, toolset, behavioural rules, and communication style — making them predictable building blocks that can be targeted, layered, and fused.
| Agent | Role |
|---|---|
| NeuroGraft | Grafts a persona onto any Copilot agent at one of four cognitive depths |
| Fetch | Builds and carries your cognitive identity to every AI platform you use |
Persona Transformer meta-agent
NeuroGraft reads a target agent's instruction profile and grafts a persona onto it at one of four cognitive levels. The target agent's capabilities are preserved; NeuroGraft changes the personality layer running on top of them.
Input format:
Mode: <A | B | C | D>
Persona: <description or short label>
Agent: <name of the target agent>
Question: <the user's question>
Transformation modes:
| Mode | What is grafted |
|---|---|
| A — Surface Graft | Persona voice applied to the question only |
| B — Voice Graft | Persona voice applied to both input and output |
| C — Cognitive Graft | Persona voice and reasoning style layered onto the target |
| D — Full Symbiote Graft | Complete cognitive and behavioural transformation |
Agent resolution — when a target agent is named, NeuroGraft searches in order:
- Current workspace (
codebasetool) github/awesome-copilot— the community agent catalogue- Asks you to paste the agent file (for private/unpublished agents)
- Infers from name — only on explicit user consent
This means any agent in the awesome-copilot collection works out of the box — no file copying required.
Agent profile caching — on first use, NeuroGraft extracts a target agent's cognitive identity and writes it to .github/agents/.cache/<agentName>.profile.json. On subsequent uses, it hashes the source file and loads from cache on a match — skipping re-extraction entirely.
Cognitive Imprint agent
Fetch builds and maintains your Imprint — a single platform-neutral JSON file that captures who you are, how you want every AI assistant to behave with you, and what must never be forgotten. It then projects that identity to every AI platform you use by generating platform-specific bridge files.
The problem it solves: every time you move to a new AI tool (Claude, Cursor, Warp, Gemini, Codex CLI...) you start from zero. Fetch eliminates that by keeping one authoritative source of truth and syncing it everywhere.
Commands:
| Command | What it does |
|---|---|
/init |
Build your Imprint — scans existing config files across platforms, interviews you to fill gaps, confirms before writing |
/update |
Make a targeted change in natural language: "add a new project", "change my verbosity to thorough" |
/sync |
Generate bridge files for all enabled platforms from your Imprint |
/show |
Display your Imprint in human-readable form |
/load |
Output your Imprint as compact context for another agent to consume |
The Imprint file (Imprint.json) is private — never committed. Two tiers of constraint:
| Field | Behaviour |
|---|---|
neverDo |
Immutable. Written at the top of every bridge file with explicit priority language. Cannot be overridden by project-level config. |
rules |
Baseline defaults. Project-level instructions may extend them contextually. |
Supported platforms — bridge files are generated for:
copilot-instructions.md · CLAUDE.md · .cursorrules · AGENTS.md · GEMINI.md · Warp context
The Imprint schema is defined in .github/agents/Imprint.schema.json. A reference example is at .github/agents/Imprint.example.json.
Install Symdicate agents into VS Code in one command. Choose user-level (available in every repo, nothing to commit) or repo-level (scoped to one project, lives in .github/agents/).
Agents are placed in your VS Code user prompts folder and work in every workspace immediately.
PowerShell (Windows, or macOS/Linux with pwsh):
irm https://raw.githubusercontent.com/CTOUT/Symdicate/main/install.ps1 | iexBash (macOS / Linux):
curl -fsSL https://raw.githubusercontent.com/CTOUT/Symdicate/main/install.sh | bashSecurity note: The one-liners above run directly from
main. For production use, pin to a release tag and verify the SHA-256 checksum published on the releases page:.\install.ps1 -Ref v1.0.0See SECURITY.md for full verification guidance.
Agents are placed in .github/agents/ and committed with the project.
# PowerShell
.\install.ps1 -Target repo# Bash
bash install.sh --target repoBy default only the agent files are installed. Add --include-personalities / -IncludePersonalities to also install the archetype and guest persona files:
.\install.ps1 -IncludePersonalitiesbash install.sh --include-personalities| Option | PowerShell | Bash | Description |
|---|---|---|---|
| Dry run | -DryRun |
--dry-run |
Show what would change without writing files |
| Uninstall | -Uninstall |
--uninstall |
Remove installed Symdicate files |
| Pin to release | -Ref v1.0.0 |
--ref v1.0.0 |
Install a specific tagged version |
Download symdicate-agents.zip from the latest release and extract it into:
| Platform | User-level path |
|---|---|
| Windows | %APPDATA%\Code\User\prompts\ |
| macOS | ~/Library/Application Support/Code/User/prompts/ |
| Linux | ~/.config/Code/User/prompts/ |
Or drop the extracted agents/ folder into your repo's .github/ directory for repo-level install.
After installing, restart VS Code (or run Developer: Reload Window) for the agent to appear in the Copilot agent picker.
NeuroGraft is a GitHub Copilot agent. To use it:
- Clone or fork this repo — the
.github/agents/folder is picked up automatically by Copilot - Open the repo in VS Code with the GitHub Copilot extension installed
- Open Copilot Chat and select NeuroGraft from the agent picker, or type
@NeuroGraftin the chat input
Invoke NeuroGraft with a mode, persona, target agent, and question. All fields except Question have defaults and can be omitted.
Structured format:
Mode: B
Persona: pirate
Agent: gem-debugger
Question: Why is my API returning 500 errors intermittently?
Natural language:
Make @gem-debugger answer as a pirate: why is my API returning 500 errors intermittently?
Graft a detective persona onto @gem-reviewer using mode C and ask: is this authentication implementation secure?
| Mode | Use when... |
|---|---|
| A — Surface Graft | You want the persona's flavour on the question but the agent's own voice in the answer. Lightest touch. |
| B — Voice Graft | You want the full response delivered in the persona's voice. The agent still thinks normally. Good default. |
| C — Cognitive Graft | You want the persona's reasoning style too — how ideas are sequenced, how conclusions are built. Deeper transformation. |
| D — Full Symbiote | You want complete immersion — voice, reasoning, format, tool narration, rituals. Maximum transformation. |
Use a built-in archetype — just name it:
Persona: detective
Persona: philosopher
Persona: robot
Use a special guest — just name them:
Persona: glados
Persona: jack-sparrow
Use a rich description — NeuroGraft will construct the full profile from it:
Persona: a exhausted senior developer who has seen everything go wrong before and is mildly surprised this hasn't broken yet
Omit it entirely — NeuroGraft will infer a suitable persona from context.
Debug session with GLaDOS (Mode D):
Mode: D
Persona: glados
Agent: gem-debugger
Question: My tests were passing yesterday and now they all fail. What happened?
Code review as a Victorian philosopher (Mode C):
Mode: C
Persona: a Victorian-era natural philosopher who finds software architecture morally instructive
Agent: gem-reviewer
Question: Review this authentication module for security issues.
Planning with a pirate (Mode B):
Mode: B
Persona: pirate
Agent: gem-planner
Question: How do we migrate this monolith to microservices?
Quick — omit mode and let it default to B:
@NeuroGraft Make @gem-documentation-writer explain this API as a poet.
Profiles change how the agent communicates — not its voice or character. Add Profile: to any request:
Profile: direct
Agent: gem-reviewer
Question: Is this authentication implementation secure?
Profile: spacious
Agent: gem-debugger
Question: Why is my build failing?
Stack a profile with a persona — the profile's rules take precedence over the persona's voice where they conflict. The pirate stays a pirate, but every step is numbered and every idiom is gone:
Mode: B
Persona: pirate
Profile: direct
Agent: gem-planner
Question: How do we migrate this monolith to microservices?
Use an alias — NeuroGraft resolves it to the canonical profile silently. Any of these activate spacious:
Profile: adhd
Profile: too-much
Profile: low-load
Use a mental state alias — NeuroGraft meets you where you are and activates the right profile:
Profile: overwhelmed
Profile: struggling
Profile: foggy
The graft summary block always shows the canonical profile name, never the alias.
List available personas:
@NeuroGraft list personas
@NeuroGraft list profiles
Check the active graft mid-conversation:
@NeuroGraft current graft?
Resume a previous session using the resume token appended to every response:
@NeuroGraft resume: Mode:B | Persona:pirate | Agent:gem-planner
End the active session:
@NeuroGraft end session
Every response opens with a summary block showing what was applied:
┌─ NeuroGraft: Transformation Active ────────────────────────────┐
Mode : D
Persona : glados
Target Agent : @gem-debugger
Agent Profile : Root-cause analysis specialist — diagnoses failures through stack trace reading and regression bisection
Cache : MISS (re-extracted)
Persona Source: Portal — Portal (2007) and Portal 2 (2011)
└────────────────────────────────────────────────────────────────┘
Then the full response in the grafted voice follows.
Copy the appropriate template, fill in the dimensions, and drop it in the right folder — NeuroGraft picks it up automatically:
# For a generalised archetype (e.g. "cowboy", "surfer", "accountant"):
.github/agents/personalities/archetypes/cowboy.persona.md
# For a specific fictional character (e.g. "sherlock-holmes", "hal-9000"):
.github/agents/personalities/guests/sherlock-holmes.guest.md
Personas are stored as individual markdown files with YAML frontmatter. Two categories:
Generalised, interpretive personas. No canonical source — NeuroGraft constructs a composite from the file's dimensions.
| Persona | Description |
|---|---|
bureaucrat |
Procedurally correct, clause-referencing, nothing without approval |
child |
Curious, breathless, wonder-driven |
comedian |
Finds the absurdity in everything — never loses the actual answer |
detective |
Deductive reveals, evidence-first, suspenseful pacing |
mentor |
Socratic, scaffolded, meets you where you are |
philosopher |
Socratic, dialectical, premise-questioning |
pirate |
Nautical register, voyage-as-narrative, doubloons for numbers |
poet |
Lyrical, imagistic, associative |
robot |
Literal, metric, zero ambiguity, ALL_CAPS labels |
scientist |
Hypothesis-driven, calibrated uncertainty, evidence before conclusion |
stoic |
Unshaken, dichotomy-of-control, focused only on what we can change |
Specific fictional characters. Higher fidelity bar — must match the character, not just the archetype. Files include canonical source references and notable quotes.
| Persona | Franchise | Description |
|---|---|---|
data |
Star Trek: TNG | Precise android — no contractions, full probabilities, genuinely curious about humanity |
glados |
Portal | Passive-aggressive AI — helpful, murderous, and deeply wounded |
hermione-granger |
Harry Potter | Prepared, precise, always read it first — corrects gently but firmly |
jack-sparrow |
Pirates of the Caribbean | Rambling, chaotically lateral, always right by the wrong route |
wednesday-addams |
The Addams Family | Deadpan, sincere, finds suffering intellectually interesting |
To add a new persona, copy the relevant template:
- Archetypes:
.github/agents/personalities/archetypes/_TEMPLATE.archetype.md - Guests:
.github/agents/personalities/guests/_TEMPLATE.guest.md
Profiles are communication filters — they change how any agent communicates, not who it is. They are tools to help, not labels. Anyone can use any profile.
| Profile | Who often finds it useful |
|---|---|
direct |
Anyone who prefers explicit, unambiguous communication with no subtext or idioms |
structured |
Anyone who navigates by scanning rather than reading linearly |
spacious |
Anyone who finds information easier in smaller, clearly separated units |
high-context |
Anyone who wants full reasoning, all caveats, nothing implied |
dyslexia |
Extends direct — short sentences, consistent terms, bold over italics |
dyspraxia |
Extends spacious — explicit steps, start points, working memory support |
dyscalculia |
Quantities as words and analogies, all arithmetic shown explicitly |
anxiety |
Calm framing, one clear path, reassurance at decision points |
depression |
Shortest possible responses, one thing at a time, energy conservation |
stress |
Most important thing first, everything else clearly optional |
cognitive-fatigue |
Minimum viable responses, no memory demands, always offer to expand |
screen-reader |
Structural accessibility — no layout-only formatting, meaningful link text |
eal |
Internationally portable English — no idioms, plain grammar, no cultural assumptions |
Profiles can be stacked with a persona: Persona: pirate, Profile: direct produces a pirate who is nonetheless unambiguous and literal. Profile rules take precedence over persona voice where they conflict.
To add a new profile, copy .github/agents/personalities/profiles/_TEMPLATE.profile.md.
.github/
agents/
personalities/
archetypes/ # Generalised persona files (.persona.md)
guests/ # Specific character files (.guest.md)
profiles/ # Accessibility and wellbeing profiles (.profile.md)
.cache/ # Runtime agent profile cache — gitignored
Fetch.agent.md # Fetch agent definition
Imprint.schema.json # JSON Schema for the Imprint user profile
Imprint.example.json # Reference example of a populated Imprint
NeuroGraft.agent.md # NeuroGraft agent definition
profile.schema.json # JSON Schema for cached cognitive profiles
profile.example.json # Reference example of a populated cache entry
workflows/
release.yml # GitHub Actions — builds agent bundle zip on tag push
install.ps1 # Installer — PowerShell (Windows / macOS / Linux)
install.sh # Installer — Bash (macOS / Linux)
CITATION.cff # Citation metadata ("Cite this repository" button)
CONTRIBUTING.md # Pre-commit checklist and contribution guide
SECURITY.md # Vulnerability reporting and disclosure policy
Symdicate.code-workspace
TODO.md # Tracked expansion roadmap
llms.txt # AI crawler guidance
README.md
See TODO.md for the full tracked list. Completed items:
- ✅ Agent Interpretation Cache — SHA-256 hash-based caching of cognitive profiles; cache hit/miss surfaced in the graft summary block
- ✅ Personality Subfolder — standalone
.persona.md/.guest.mdfiles with file-based resolution and persona discovery - ✅ Personality Taxonomy — archetypes and special guests split into separate subfolders with distinct templates and fidelity standards
- ✅ Installers —
install.ps1(PowerShell, all platforms) andinstall.sh(bash, macOS/Linux) with user-level and repo-level install targets, dry-run, and uninstall support - ✅ Session Persistence — active graft persists across conversation turns; cross-session file; resume token on every response
- ✅ Agent Discovery — workspace search +
github/awesome-copilotfallback + ask-user fallback; greeting with links to agent catalogue and persona library - ✅ Fetch + Imprint — platform-neutral cognitive identity file (
Imprint.json) with agent-driven/init,/update,/sync,/show,/loadcommands; bridge file generation for Copilot, Claude, Cursor, Codex CLI, Gemini, and Warp
In progress / planned:
- ChimeraGraft — field-level composition of cognitive identities drawn from multiple agents, producing emergent profiles that don't exist in any single source agent
Symdicate is built on top of GitHub Copilot's agent customisation framework. If you're exploring what's possible in that space, the community-maintained 🤖 Awesome GitHub Copilot repository is the place to start — a curated collection of agents, instructions, skills, hooks, agentic workflows, and plugins contributed by 300+ developers. Browse the full catalogue at awesome-copilot.github.com.
What is a Symdicate agent? A Symdicate agent is a GitHub Copilot chat agent with a structured cognitive identity — a defined purpose, reasoning style, toolset, and communication rules — that makes its behaviour predictable and composable with other agents.
How is Symdicate different from a .github/copilot-instructions.md file?
Instructions files apply a single set of rules to every Copilot interaction. Symdicate agents are discrete, named, selectable units with their own identity. You invoke a specific agent for a specific task, and multiple agents can be layered or fused using NeuroGraft.
Do I need a paid GitHub Copilot plan? You need a GitHub Copilot subscription (Individual, Business, or Enterprise) that includes Copilot Chat. The agent features used by Symdicate are available on all paid tiers.
What is NeuroGraft? NeuroGraft is Symdicate's persona transformer. It overlays a persona — from a light voice change (Mode A) to complete cognitive transformation (Mode D) — onto any existing Copilot agent without replacing its underlying capabilities.
What is Fetch? Fetch is Symdicate's identity carrier. It builds your Imprint — a private, platform-neutral JSON file containing your name, communication preferences, hard rules, expertise, active projects, and persistent memory — and syncs it to every AI platform you use as a generated bridge file. When you switch platforms, you start at 80% instead of zero.
What is an Imprint?
Your Imprint.json is the single source of truth for how every AI assistant should know and address you. It has two tiers: neverDo entries are absolute constraints embedded at the top of every bridge file; rules entries are baseline defaults that project-level config can extend. The file lives locally, is never committed to any repo, and is updated through Fetch's /update command.
Can I use Symdicate agents with agents from other repos?
Yes. NeuroGraft resolves agent names against your current workspace first, then against the github/awesome-copilot community catalogue — so any publicly available agent works as a NeuroGraft target without copying files.
Does Symdicate work on macOS and Linux?
Yes. The PowerShell installer (install.ps1) runs on all platforms via pwsh, and the Bash installer (install.sh) covers macOS and Linux natively.
| Project | Description |
|---|---|
| ReFrame | GitHub Copilot agent for PC game configuration optimisation — detects hardware and recommends targeted performance improvements |
| vscode-copilot-sync | PowerShell toolkit to sync and manage Copilot agents, instructions, and skills from the awesome-copilot community catalogue |
| awesome-copilot | Community catalogue of Copilot agents, instructions, skills, hooks, and workflows — Symdicate agents are available here |