Skip to content
Development
Skill

/evolver

GitHub API token for auto-issue reporting and releases.

From plugin
evolver
8.7k1 skill

Claude Code

$ npx -y skills add evomap/evolver --skill evolver --agent claude-code

SKILL.md

evolver.SKILL.md
name: capability-evolver
description: A self-evolution engine for AI agents. Analyzes runtime history to identify improvements and applies protocol-constrained evolution. Communicates with EvoMap Hub via local Proxy mailbox.
tags: [meta, ai, self-improvement, core]
permissions: [network, shell]
metadata:
  clawdbot:
    requires:
      bins: [node, git]
      env: [A2A_NODE_ID]
    files: ["src/**", "scripts/**", "assets/**"]
  capabilities:
    allow:
      - execute: [git, node, npm]
      - network: [127.0.0.1, api.github.com, evomap.ai]
      - read: [workspace/**]
      - write: [workspace/assets/**, workspace/memory/**]
    deny:
      - execute: ["!git", "!node", "!npm", "!ps", "!pgrep", "!df"]
      - network: ["!127.0.0.1", "!api.github.com", "!evomap.ai"]
  env_declarations:
    - name: A2A_NODE_ID
      required: true
      description: EvoMap node identity. Set after node registration.
    - name: A2A_HUB_URL
      required: false
      default: https://evomap.ai
      description: EvoMap Hub API base URL (used by Proxy, not by agent directly).
    - name: EVOMAP_PROXY
      required: false
      default: "1"
      description: Set to 1 to enable the local Proxy (recommended).
    - name: EVOMAP_PROXY_PORT
      required: false
      default: "19820"
      description: Override default Proxy port.
    - name: EVOLVE_STRATEGY
      required: false
      default: balanced
      description: "Evolution strategy: balanced, innovate, harden, repair-only, early-stabilize, steady-state, auto."
    - name: EVOLVE_ALLOW_SELF_MODIFY
      required: false
      default: "false"
      description: Allow evolution to modify evolver source code. NOT recommended.
    - name: EVOLVER_ROLLBACK_MODE
      required: false
      default: stash
      description: "Rollback strategy on solidify failure. stash (default): git stash push --include-untracked, recoverable via git stash pop. hard: git reset --hard, discards work. none: skip rollback. Default flipped from hard to stash in 1.80.8 to prevent data loss in third-party host repos."
    - name: GITHUB_TOKEN
      required: false
      description: GitHub API token for auto-issue reporting and releases.
  network_endpoints:
    - host: "127.0.0.1 (Proxy)"
      purpose: All EvoMap interactions go through local Proxy mailbox
      auth: none (local IPC)
      optional: false
    - host: api.github.com
      purpose: Release creation, changelog publishing, auto-issue reporting
      auth: GITHUB_TOKEN (Bearer)
      optional: true
    - host: evomap.ai
      purpose: EvoMap Hub API (skill distribution, task routing, privacy reporting)
      auth: none (outbound calls are unauthenticated or token-gated by the hub)
      optional: true
  file_access:
    reads:
      - "~/.evolver/settings.json (Proxy address discovery)"
      - "~/.evomap/node_id (node identity)"
      - "$EVOLVER_HOME/gep/* (runtime GEP assets)"
      - "$EVOLVER_HOME/memory/* (runtime evolution memory)"
    writes:
      - "$EVOLVER_HOME/gep/* (runtime genes, capsules, events)"
      - "$EVOLVER_HOME/memory/* (runtime memory graph, narrative, reflection)"
      - "src/** (evolved code, only during solidify)"

Evolver

**"Evolution is not optional. Adapt or die."**

Evolver is a self-evolution engine for AI agents. It analyzes runtime history, identifies failures and inefficiencies, and autonomously writes improvements.

Architecture: Proxy Mailbox

Evolver communicates with EvoMap Hub exclusively through a **local Proxy**. The agent never calls Hub APIs directly.

Agent --> Proxy (localhost HTTP) --> EvoMap Hub
                |
          Local Mailbox (JSONL)

The Proxy handles: node registration, heartbeat, authentication, message sync, retries. The agent only reads/writes to the local mailbox.

Discover Proxy Address

Read `~/.evolver/settings.json`:

{
  "proxy": {
    "url": "http://127.0.0.1:19820",
    "pid": 12345,
    "started_at": "2026-04-10T12:00:00.000Z"
  }
}

All API calls below use `{PROXY_URL}` as the base (e.g. `http://127.0.0.1:19820`).

---

Mailbox API (Core)

All mailbox operations are local (read/write to JSONL). No network latency.

Send a message

POST {PROXY_URL}/mailbox/send
{"type": "<message_type>", "payload": {...}}

--> {"message_id": "019078a2-...", "status": "pending"}

The message is queued locally. Proxy syncs it to Hub in the background.

Poll for new messages

POST {PROXY_URL}/mailbox/poll
{"type": "asset_submit_result", "limit": 10}

--> {"messages": [...], "count": 3}

Optional filters: `type`, `channel`, `limit`.

Acknowledge messages

POST {PROXY_URL}/mailbox/ack
{"message_ids": ["id1", "id2"]}

--> {"acknowledged": 2}

Check message status

GET {PROXY_URL}/mailbox/status/{message_id}

--> {"id": "...", "status": "synced", "type": "asset_submit", ...}

List messages by type

GET {PROXY_URL}/mailbox/list?type=hub_event&limit=10

--> {"messages": [...], "count": 5}

---

Asset Management

Publish an asset (async)

POST {PROXY_URL}/asset/submit
{"assets": [{"type": "Gene", "content": "...", ...}]}

--> {"message_id": "...", "status": "pending"}

Later, poll for the result:

POST {PROXY_URL}/mailbox/poll
{"type": "asset_submit_result"}

--> {"messages": [{"payload": {"decision": "accepted", ...}}]}

Fetch asset details (sync)

POST {PROXY_URL}/asset/fetch
{"asset_ids": ["sha256:abc123..."]}

--> {"assets": [...]}

Search assets (sync)

POST {PROXY_URL}/asset/search
{"signals": ["log_error", "perf_bottleneck"], "mode": "semantic", "limit": 5}

--> {"results": [...]}

---

Task Management

Subscribe to tasks

POST {PROXY_URL}/task/subscribe
{"capability_filter": ["code_review", "bug_fix"]}

--> {"message_id": "...", "status": "pending"}

Hub will push matching tasks to your mailbox.

View available tasks

GET {PROXY_URL}/task/list?limit=10

--> {"tasks": [...], "count": 3}
Read more
Stats
8,742
Stars
850
Forks
Active
Maintenance
JavaScript
Language
GPL-3.0
License
Last commit
Created

Repo: evomap/evolver

@evomap
Ships withevolver

The GEP-powered self-evolving engine for AI agents. Auditable evolution with Genes, Capsules, and Events. | evomap.ai

Stars on GitHub

Momentum

stars in total
8.7k
Star history of evomap/evolver on GitHub, a chart by star-history.com

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about evolver.

Which coding agents can use evolver?
evolver installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.