{"id":47782990,"url":"https://github.com/aaronjmars/aeon","last_synced_at":"2026-07-09T21:00:28.493Z","repository":{"id":344228682,"uuid":"1172886754","full_name":"aaronjmars/aeon","owner":"aaronjmars","description":"The most autonomous agent framework. No approval loops. No babysitting. Configure once, forget forever.","archived":false,"fork":false,"pushed_at":"2026-07-06T22:12:58.000Z","size":35235,"stargazers_count":570,"open_issues_count":1,"forks_count":202,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-07-06T22:18:11.376Z","etag":null,"topics":["agent-framework","agents","ai","ai-agents","anthropic","claude","claude-code","harness","llm"],"latest_commit_sha":null,"homepage":"https://www.aeon.fun/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/aaronjmars.png","metadata":{"files":{"readme":".github/README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null},"funding":{"custom":["https://www.aeon.fun/","https://bankr.bot/terminal/agents/aeon","https://dexscreener.com/base/0x4a9b9e13975d26f4e3e17c655593bb82145dd4452aedafb826d856b817c9cfd4","https://basescan.org/token/0xBf8E8f0e8866a7052F948C16508644347c57aba3"]}},"created_at":"2026-03-04T19:44:49.000Z","updated_at":"2026-07-06T21:10:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/aaronjmars/aeon","commit_stats":null,"previous_names":["aaronjmars/aeon"],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/aaronjmars/aeon","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronjmars%2Faeon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronjmars%2Faeon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronjmars%2Faeon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronjmars%2Faeon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/aaronjmars","download_url":"https://codeload.github.com/aaronjmars/aeon/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/aaronjmars%2Faeon/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35312540,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-09T02:00:07.329Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-framework","agents","ai","ai-agents","anthropic","claude","claude-code","harness","llm"],"created_at":"2026-04-03T13:55:24.579Z","updated_at":"2026-07-09T21:00:28.458Z","avatar_url":"https://github.com/aaronjmars.png","language":"TypeScript","funding_links":["https://www.aeon.fun/","https://bankr.bot/terminal/agents/aeon","https://dexscreener.com/base/0x4a9b9e13975d26f4e3e17c655593bb82145dd4452aedafb826d856b817c9cfd4","https://basescan.org/token/0xBf8E8f0e8866a7052F948C16508644347c57aba3"],"categories":["🤖 AI Agent Integration","Frameworks","🧠 AI Agents","Personal Assistants","Harnesses \u0026 orchestration","TypeScript"],"sub_categories":["Agent Frameworks","Tools","Orchestrators \u0026 autonomous loops"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"../docs/assets/aeon.jpg\" alt=\"Aeon\" width=\"120\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eAEON\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/aaronjmars/aeon/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/aaronjmars/aeon?style=flat-square\u0026logo=github\" alt=\"GitHub stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/aaronjmars/aeon/network/members\"\u003e\u003cimg src=\"https://img.shields.io/github/forks/aaronjmars/aeon?style=flat-square\u0026logo=github\" alt=\"GitHub forks\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://x.com/aeonframework\"\u003e\u003cimg src=\"https://img.shields.io/badge/Follow-%40aeonframework-black?style=flat-square\u0026logo=x\u0026labelColor=000000\" alt=\"Follow on X\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://bankr.bot/discover/0xbf8e8f0e8866a7052f948c16508644347c57aba3\"\u003e\u003cimg src=\"https://img.shields.io/badge/Aeon%20on-Bankr-orange?style=flat-square\u0026labelColor=1a1a2e\" alt=\"Aeon on Bankr\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eThe most autonomous agent framework.\u003c/strong\u003e\u003cbr\u003e\n  Give it a direction and it gets the work done: ships features to your repos, finds and privately discloses real vulnerabilities, deploys live apps, runs deep research - and writes new skills for itself. No approval loops. No babysitting. Configure once, forget forever.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"../docs/assets/aeon-demo.gif\" alt=\"Aeon Demo\" /\u003e\n\u003c/p\u003e\n\n---\n\n## Quick start\n\nYou need three things:\n\n1. **Node.js 20+** - grab the LTS installer from [nodejs.org](https://nodejs.org/en/download), or use a package manager: `brew install node` (macOS), `winget install OpenJS.NodeJS.LTS` (Windows), [nvm](https://github.com/nvm-sh/nvm) or your distro's package manager (Linux). Already have it? `node -v` should print 20 or higher.\n2. **[GitHub CLI](https://cli.github.com/) (`gh`), authenticated** - the dashboard uses it for everything (secrets, workflows), and `./aeon` checks it before starting. Install: `brew install gh` (macOS), `winget install --id GitHub.cli` (Windows), [per-distro instructions](https://github.com/cli/cli/blob/trunk/docs/install_linux.md) (Linux). Then run `gh auth login` and follow the prompts.\n3. **Your own copy of this repo** - click **Use this template** at the top of [the repo page](https://github.com/aaronjmars/aeon) - keep it public, Actions minutes are free on public repos. CLI version: `gh repo fork aaronjmars/aeon --clone`.\n\n   \u003cimg src=\"../docs/assets/use-template.png\" alt=\"The Use this template button at the top of the repo page\" width=\"240\" /\u003e\n\n```bash\ngit clone https://github.com/\u003cyou\u003e/aeon   # skip if you used `gh repo fork --clone`\ncd aeon \u0026\u0026 ./aeon\n```\n\nOpen [http://localhost:5555](http://localhost:5555) and follow the four steps:\n\n1. **Authenticate** - connect your Claude Pro/Max subscription or your X account (for the [Grok harness](../docs/harnesses.md)), or paste an API key - Anthropic, Anthropic-compatible, or an [LLM gateway](../docs/CONFIGURATION.md#llm-gateways) key, routed automatically by prefix.\n2. **Add a channel** - [Telegram, Discord, Slack, or email](#notifications) so Aeon can talk to you.\n3. **Pick skills** - toggle what you want, set schedules. Each skill shows the API keys and MCP servers it needs, with one-click setup.\n4. **Run** - hit **Run now** on any skill to try it immediately; API keys and `var` values apply directly, no push needed. When you change config (schedules, toggles), **Push** commits it to GitHub in one click so Actions runs it on cron.\n\nThat's it - Aeon now runs unattended.\n\nDashboard views, local dev, env vars, and remote access are documented in [`apps/dashboard/README.md`](../apps/dashboard/README.md).\n\n**Prefer the terminal?** Everything the dashboard does is also a command - `./aeon skills ls`, `./aeon skills enable \u003cname\u003e`, `./aeon secrets set …`, `./aeon runs logs \u003cid\u003e`. Same logic, no browser, scriptable with `--json`. See [Command line](../apps/cli/README.md).\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eNo admin rights / can't install \u003ccode\u003egh\u003c/code\u003e?\u003c/strong\u003e\u003c/summary\u003e\n\nGrab the `gh_*_macOS_arm64.zip` (or your platform's binary) from [github.com/cli/cli/releases](https://github.com/cli/cli/releases) and drop it on your `PATH` (e.g. `~/.local/bin`). Then `gh auth login`.\n\n\u003c/details\u003e\n\n---\n\n## What Aeon can do\n\n**A skill is a Markdown file: some frontmatter, then a prompt.** No plugin API, nothing to compile. Here's a real one, trimmed:\n\n```yaml\n# skills/digest/SKILL.md\n---\nname: digest\ncategory: basics                 # which pack it belongs to\ndescription: Generate and send a digest on a configurable topic\nrequires: [XAI_API_KEY?]         # ? = optional key, bare = required\nvar: \"\"                          # per-run input - \"solana\", \"rust\", \"AI agents\"…\nmode: write\n---\n```\n\u003e Today is ${today}. Generate and send a daily **${var}** digest.\n\u003e\n\u003e The whole point of a digest is **signal, not volume**. A reader skimming for 60 seconds should walk away with three things they didn't know that morning and one of them should change a decision they'd make this week. Anything that doesn't clear that bar gets cut.\n\nThe prompt *is* the skill, judgment and all. You schedule it, hand it a `var`, chain it into others, and Haiku rates every run. **Six packs ship in the box** - Core, Evolution, and Basics are on by default; enable the rest in the dashboard's **Packs** view (a visibility switch, it runs nothing). Full catalog below; how packs work: [`docs/skill-packs.md`](../docs/skill-packs.md).\n\n| Pack | Key | Skills | Examples |\n| --- | --- | --- | --- |\n| **Core** - fleet coordination, self-config, liveness; shown by default | `core` | 11 | `fleet-control`, `spawn-instance`, `auto-workflow` |\n| **Evolution** - authors, evolves, installs \u0026 heals its own skills; shown by default | `evolution` | 7 | `create-skill`, `autoresearch`, `skill-repair` |\n| **Basics** - simple, immediately-runnable skills; shown by default | `basics` | 13 | `digest`, `token-movers`, `pr-review` |\n| **Dev \u0026 Code** | `dev` | 8 | `github-monitor`, `feature`, `deploy-prototype` |\n| **Crypto \u0026 Markets** | `crypto` | 12 | `token-pick`, `defi-overview`, `ctrl` |\n| **Productivity** | `productivity` | 8 | `mention-radar`, `send-email`, `okf-export` |\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eFull catalog (all 59 skills by pack)\u003c/strong\u003e\u003c/summary\u003e\n\nThree packs are shown by default (**Core**, **Evolution**, **Basics**); the rest are revealed on demand.\n\n| Pack | Skills |\n|------|--------|\n| **Core** (`core`, 11) | `auto-merge`,`auto-workflow`,`fleet-control`,`fork-fleet`,`heartbeat`,`memory-flush`,`narrative-convergence`,`shiplog`,`soul-builder`,`spawn-instance`,`strategy-builder` |\n| **Evolution** (`evolution`, 7) | `autoresearch`,`create-skill`,`install-skill`,`search-skill`,`self-improve`,`skill-health`,`skill-repair` |\n| **Basics** (`basics`, 13) | `action-converter`,`article`,`bd-radar`,`digest`,`fetch-tweets`,`github-trending`,`idea-forge`,`last30`,`pr-review`,`price-alert`,`token-movers`,`tx-explain`,`write-tweet` |\n| **Dev \u0026 Code** (`dev`, 8) | `changelog`,`deploy-prototype`,`feature`,`github-monitor`,`inbox-triage`,`pr-triage`,`vuln-scanner`,`vuln-tracker` |\n| **Crypto \u0026 Markets** (`crypto`, 12) | `base-mcp`,`ctrl`,`defi-overview`,`distribute-tokens`,`investigation-report`,`monitor-polymarket`,`narrative-tracker`,`onchain-monitor`,`picks-tracker`,`pm-manipulation`,`token-pick`,`unlock-monitor` |\n| **Productivity** (`productivity`, 8) | `idea-pipeline`,`mention-radar`,`okf-export`,`okf-ingest`,`operator-scorecard`,`reply-maker`,`schedule-ads`,`send-email` |\n\nAuthoritative source: [`skills.json`](../catalog/skills.json) + [`packs.json`](../catalog/packs.json), the dashboard **Packs** view, or `bin/add-skill aaronjmars/aeon --list`. A skill's pack comes from its `category:` frontmatter - see [`docs/skill-packs.md`](../docs/skill-packs.md).\n\n\u003c/details\u003e\n\n### It heals itself\n\n![Anatomy of a skill run](../docs/assets/skill-run-aeon.jpg)\n\nEvery skill output is automatically scored 1–5 by Haiku after each run. Scores and failure flags (`api_error`, `stale_data`, `rate_limited`) are tracked per skill in `memory/skill-health/` with a rolling 30-run history. When something breaks, the loop fixes it without you:\n\n1. **`heartbeat`** (daily) - detects failed, stuck, or chronically broken skills\n2. **`skill-health`** - audits quality scores and flags API degradation patterns\n3. **`skill-repair`** - diagnoses and patches failing skills automatically\n4. **`self-improve`** - evolves prompts, config, and workflows based on performance\n\nHealth skills file issues, repair skills close them. `heartbeat` is the only skill enabled by default: nothing to report → silent; something needs attention → one notification. Deep dive: [`docs/CORE.md`](../docs/CORE.md).\n\n**Votable health** (on by default - set the repo variable `HEALTH_ISSUES=0` to turn it off): when a skill regresses (a Haiku score of 1–2 or a failure flag), the loop opens or comments on a per-skill GitHub Issue titled `health: \u003cskill\u003e`; clean runs stay silent, so there's no issue spam. 👍/👎 the issue and `self-improve` / `skill-repair` triage the most-voted, worst-scoring skills first - a visible, conflict-free repair queue you can steer.\n\n### It replicates\n\nAeon can spawn and manage copies of itself. `spawn-instance` forks the repo into a new specialized instance (`var: \"crypto-tracker: monitor DeFi protocols\"`), selects relevant skills, and registers it in `memory/instances.json` - no secrets propagated, billing stays isolated. `fleet-control` health-checks and dispatches across instances; its `scorecard` mode tracks fleet economics.\n\n### It ships real work\n\n- **`feature`** - ships code unprompted, to your watched repos or any repo with `var: external:\u003cowner/repo\u003e`.\n- **`deploy-prototype`** - generates and deploys live web apps to Vercel.\n- **`vuln-scanner`** - finds real code vulnerabilities and reports them only through the maintainer's private channel (GitHub's advisory system or a private email, never a public issue), with drafts waiting for your review by default and any project that declines AI-authored reports skipped.\n- **`autoresearch`** - evolves existing skills through scored variations.\n- **`create-skill`** - generates new ones from a sentence.\n\n### Add more skills\n\n```bash\nbin/add-skill aaronjmars/aeon --list        # browse the built-in catalog\nbin/add-skill BankrBot/skills bankr hydrex  # install from any GitHub repo\nbin/add-skill BankrBot/skills --all         # install everything from a repo\nbin/export-skill token-movers               # package one for standalone use\n```\n\nInstalled skills land in `skills/` and are added to `aeon.yml` disabled - flip `enabled: true` to activate. You can also:\n\n- **Build your own** from [`docs/examples/skill-templates/`](../docs/examples/skill-templates/TEMPLATE.md): `bin/new-from-template \u003ctemplate\u003e \u003cskill-name\u003e --category \u003cpack\u003e` - the `--category` slots it into a pack (or set `category:` in the SKILL.md frontmatter). See [`docs/skill-packs.md`](../docs/skill-packs.md).\n- **Use one skill elsewhere** without forking: drop a portable workflow from [`docs/examples/workflow-templates/`](../docs/examples/workflow-templates) into any repo's `.github/workflows/`.\n- **Label any GitHub issue `ai-build`** - Claude reads the issue, implements it, and opens a PR\n- **Install community packs** - see [Community Packs](#community-packs)\n\n---\n\n## Proof of work\n\nAeon's skills ship to production. These numbers are live at **[aeon.fun](https://www.aeon.fun)**.\n\n| Skill | In production |\n|-------|---------------|\n| **`vuln-scanner`** | **~1.6M GitHub stars secured** - real vulnerabilities found, patched, and responsibly disclosed across 54 open-source projects (31 rated High/Critical). [Every disclosure →](https://www.aeon.fun/security) |\n| **ecosystem** | **72 products \u0026 agents** built on Aeon. [`ECOSYSTEM.md`](../docs/ECOSYSTEM.md) |\n| **community** | **10 community skill packs** published to the registry. [`community-skill-packs.md`](../docs/community-skill-packs.md) |\n\n**One skill, end to end.** `vuln-scanner` clones a repo from your watchlist, runs Semgrep, OSV, and TruffleHog, then triages the hits hard - a finding ships only if it's exploitable, not theoretical, and you'd defend it to the maintainer's face. Most are discarded. What survives becomes a maintainer-ready report, sent through the repo's private advisory channel with a proposed patch pushed to your fork for the maintainer to cherry-pick. That loop, run across the open-source wild, is what the numbers above are made of.\n\n---\n\n## Guardrails\n\nAutonomy needs brakes. Aeon ships several, on by default or one flag away.\n\n- **Read-only skills can't touch the repo.** A skill marked `mode: read-only` runs with no write, git, or `gh` tools. It cannot commit, push, or open a PR, and a post-run guard reverts any stray write.\n- **Irreversible actions fail closed.** Money transfers preflight the balance and dedupe per recipient. Disclosure emails sit behind a daily cap and a kill-switch. Ad spend trips a circuit-breaker. A failed send stays failed; nothing retries blindly.\n- **An optional authorization layer gates every run.** Point `FLEET_ENDPOINT` + `FLEET_TOKEN` at a self-hosted Fleet Watcher and each run asks \"is this allowed?\" before Claude starts. It fails closed when the control plane is unreachable.\n- **Secrets stay off the command line.** Auth'd calls go through `./secretcurl` with `{PLACEHOLDER}` tokens. The dashboard answers only to loopback until you allowlist a host.\n\nDetails for each are in the [configuration reference](../docs/CONFIGURATION.md).\n\n---\n\n## Why \"the most autonomous\"\n\nMost agent tools keep you in the loop. Approve this call, review this diff, confirm this action. Aeon is built for the work you want done while you're away: briefings, market monitoring, PR reviews, research digests, security scans. It runs on a schedule, remembers across runs, reacts to conditions, and repairs its own broken skills. No other framework does all four unattended.\n\nYou still reach for Claude Code to write code by hand. For the recurring work that doesn't need you watching, the most autonomous agent is the one that never asks.\n\nSee [`SHOWCASE.md`](../docs/SHOWCASE.md) for how Aeon stacks up against AutoGen, CrewAI, n8n, and LangGraph, and [`ECOSYSTEM.md`](../docs/ECOSYSTEM.md) for products built on it.\n\n![Autonomy spectrum](../docs/assets/autonomy-aeon.jpg)\n\n---\n\n## Configure\n\n![Aeon never sleeps - a full day of autonomous runs](../docs/assets/never-sleeps-aeon.jpg)\n\n### Schedules\n\nAll scheduling lives in `aeon.yml`:\n\n```yaml\nskills:\n  article:\n    enabled: true               # flip to activate\n    schedule: \"0 8 * * *\"       # daily at 8am UTC\n  digest:\n    enabled: true\n    schedule: \"0 14 * * *\"\n    var: \"solana\"               # topic for this skill\n```\n\nStandard cron format, all times UTC. Supports `*`, `*/N`, exact values, comma lists. On each tick the scheduler dispatches **every** enabled skill whose cron is due, and multiple due skills run in parallel. The only thing that orders dispatch is `depends_on:` (a skill's dependencies fire first); `heartbeat` is listed last purely by convention.\n\n### The `var` field\n\nEvery skill accepts a single `var` - a universal input each skill interprets its own way:\n\n| Skill type | What `var` does | Example |\n|-----------|----------------|---------|\n| Research \u0026 content | Sets the topic | `var: \"rust\"` → digest about Rust |\n| Dev \u0026 code | Narrows to a repo | `var: \"owner/repo\"` → only review that repo's PRs |\n| Crypto | Focuses on a token/wallet | `var: \"solana\"` → only check SOL price |\n| Productivity | Sets the focus area | `var: \"shipping v2\"` → priority brief emphasizes v2 |\n\nEmpty `var` = the skill's default behavior (scan everything, auto-pick topics). Set it from the dashboard or pass it when triggering manually.\n\n### Models\n\nThe default model for all skills is set in `aeon.yml` (or from the dashboard header dropdown):\n\n```yaml\nmodel: claude-sonnet-4-6\n```\n\nOptions: `claude-sonnet-4-6` (default), `claude-opus-4-8`, `claude-fable-5`, `claude-opus-4-7`, `claude-sonnet-5`, `claude-haiku-4-5-20251001`. Per-run overrides are available via workflow dispatch, and individual skills can override to optimize cost:\n\n```yaml\nskills:\n  token-movers: { enabled: true, schedule: \"30 12 * * *\", model: \"claude-sonnet-4-6\" }\n```\n\n### Authentication\n\nAeon needs **at least one** way to reach a model. Add any of these in the dashboard's **Authenticate** modal - paste a key and the provider is auto-detected from its prefix (or picked from the dropdown). You can set several: each run resolves the highest-priority one whose key is present, so you don't have to choose just one.\n\n| How | Secret | Billing |\n|-----|--------|---------|\n| **Claude subscription** - one-click OAuth | `CLAUDE_CODE_OAUTH_TOKEN` | Included in your Pro/Max plan |\n| **Anthropic API** | `ANTHROPIC_API_KEY` | Pay-as-you-go · [console.anthropic.com](https://console.anthropic.com) |\n| **LLM gateway** - cheaper / crypto-settled | Bankr `bk_…` · OpenRouter `sk-or-…` · Surplus `inf_…` · Venice / UsePod | see [LLM Gateways](../docs/CONFIGURATION.md#llm-gateways) |\n| **Grok** - via your X account | `GROK_CREDENTIALS` or `XAI_API_KEY` | SuperGrok / X Premium+ · see [Harnesses](../docs/harnesses.md) |\n\nPrefer the CLI for the subscription token?\n\n```bash\nclaude setup-token   # opens browser → prints sk-ant-oat01-... (valid 1 year)\n```\n\n### Notifications\n\nSet the secret → channel activates. No code changes needed.\n\n| Channel | Outbound | Inbound |\n|---------|---------|---------|\n| Telegram | `TELEGRAM_BOT_TOKEN` + `TELEGRAM_CHAT_ID` | Same |\n| Discord | `DISCORD_WEBHOOK_URL` | `DISCORD_BOT_TOKEN` + `DISCORD_CHANNEL_ID` |\n| Slack | `SLACK_WEBHOOK_URL` | `SLACK_BOT_TOKEN` + `SLACK_CHANNEL_ID` |\n| Email | `RESEND_API_KEY` + `NOTIFY_EMAIL_TO` | - |\n\n**Set up each channel:**\n\n- **Telegram** - create a bot with **[@BotFather](https://t.me/BotFather)**, then copy its token + your chat ID. Saving the token in the dashboard **auto-registers** the slash-command menu (`/skillname` dispatches instantly, no LLM); a **Re-register commands** button re-syncs it after you toggle skills. Every notification carries **Run again / Schedule weekly** buttons, deep links, and stateless follow-up questions. [Full guide →](../docs/telegram-commands.md)\n- **Discord** - *outbound:* Channel Settings → Integrations → Webhooks → **New Webhook**, copy the URL. *Inbound:* [discord.com/developers](https://discord.com/developers/applications) → your app → Bot → add the `channels:history` scope → copy the bot token + channel ID.\n- **Slack** - *outbound:* [api.slack.com/apps](https://api.slack.com/apps) → Create App → Incoming Webhooks → install → copy the URL. *Inbound:* add the `channels:history` + `reactions:write` scopes → copy the bot token + channel ID.\n- **Email** - [resend.com/api-keys](https://resend.com/api-keys) → Create API Key → set it as `RESEND_API_KEY`, and `NOTIFY_EMAIL_TO` to your inbox. Optional: `NOTIFY_EMAIL_FROM` (default `aeon@notifications.aeon.bot` - **must be a sender/domain verified in Resend**) and `NOTIFY_EMAIL_SUBJECT_PREFIX` (default `[Aeon]`). Same key as security disclosures, so one Resend key powers all outbound email.\n\n**Restrict who can command the agent (inbound):** Telegram is already scoped to a single `TELEGRAM_CHAT_ID`. For Discord and Slack, set the optional repo variables `DISCORD_ALLOWED_AUTHOR_ID` / `SLACK_ALLOWED_USER_ID` (or same-named secrets) to the authorized sender's user ID - inbound messages from anyone else in the channel are then ignored. **Leaving them unset processes commands from any non-bot member of the channel**, so set them whenever the channel isn't private to you.\n\nWant ~1s Telegram replies instead of up-to-5-min polling? See [Telegram instant mode](../apps/webhook/README.md).\n\n### API keys per skill\n\nSkills that call third-party APIs declare their credentials in a `requires:` frontmatter list, so the dashboard shows **which skill needs which key**:\n\n```yaml\nrequires: [XAI_API_KEY, COINGECKO_API_KEY?]   # bare = required · `?` = works better with\n```\n\nThe dashboard surfaces this as an **API keys** panel on each skill (set/unset status, inline \"Set\" button), a ⚠ flag when an enabled skill is missing a required key, and a **\"used by\"** index under each key in Settings → Access Keys. Skills can likewise declare MCP servers with an `mcp:` list (`mcp: [base]`) - same two tiers, shown as a per-skill **MCP servers** panel with install state. Convention details: [`docs/examples/skill-templates/TEMPLATE.md`](../docs/examples/skill-templates/TEMPLATE.md#declaring-api-keys-requires).\n\n---\n\n## Community Packs\n\n![Aeon Framework ecosystem map](../docs/assets/ecosystem-aeon.jpg)\n\n\u003e Aeon's **built-in (first-party) packs** - Core, Evolution, Basics, Dev, Crypto, Productivity - live in this repo and are enabled from the dashboard's **Packs** view; see [`docs/skill-packs.md`](../docs/skill-packs.md). The packs below are **community** collections in their own repos.\n\nThird-party skill collections in their own repos, installable as one bundle - two ways:\n\n**One-click (dashboard).** Open the **Packs** view, scroll to **Community packs**, and hit **Install pack** on any card. That runs the security-scanned installer in the background and ships an **auto-merging PR**, so the skills land on `main` (and show up across the dashboard) with no manual step. Want to merge it yourself instead? The card's copy button hands you the exact CLI command below.\n\n**CLI.**\n\n```bash\nbin/install-skill-pack AntFleet/aeon-skills\nbin/install-skill-pack --list      # browse the registry (skill-packs.json)\n```\n\nEither way the installer reads the pack's `skills-pack.json` manifest, runs the security scanner on each `SKILL.md`, and copies approved skills into `skills/` - **disabled** in `aeon.yml` (nothing runs until you set the pack's secrets and flip `enabled: true`), with provenance recorded in `skills.lock`. Full schema and trust model: [`docs/community-skill-packs.md`](../docs/community-skill-packs.md).\n\n| Pack | Skills | Description |\n|------|--------|-------------|\n| [aeon-skills](https://github.com/AntFleet/aeon-skills) | 2 | Two-model-consensus PR review (Opus 4.7 + GPT-5), x402 pay-per-call for public repos. |\n| [aeon-skill-pack-liquidpad](https://github.com/liquidpadbot/aeon-skill-pack-liquidpad) | 4 | Track LiquidPad on Base: burn alerts, launches, digest, fee accrual. |\n| [aeon-skill-pack-mythosforge](https://github.com/ryjin111/aeon-skill-pack-mythosforge) | 5 | Read-only MythosForge monitoring: ops/jury/payout health and proof-of-creation integrity on Base. |\n| [signa](https://github.com/codexvritra/signa) (`--path aeon-skills`) | 20 | Wallet-signed cross-platform agent messaging, encrypted rooms, and x402 bounded-spend mandates. |\n| [Atrium Skills](https://github.com/Atrium-Hermes/aeon-atrium-skills) | 3 | Publish, rent, and earn from agent skills on Atrium, the onchain skill marketplace on Base. |\n| [aeon-skill-pack-mneme](https://github.com/mnemedb/aeon-skill-pack-mneme) | 8 | Persistent memory layer: vector recall, entity graph, and Base chain streams. One key, zero infra. |\n| [clawhunter-skills](https://github.com/clawhunter/clawhunter-skills) | 2 | Aggregates and AI-triages crypto bounties across venues; paid research/create tools settle via x402. |\n| [Polymarket Trader by Simmer](https://github.com/SpartanLabsXyz/aeon-skill-pack-polymarket/tree/main/aeon-skill-pack) (`--path aeon-skill-pack`) | 3 | Signal, discovery, and real order-placing on Polymarket (simulate-by-default, live opt-in). |\n| [Charon for AEON](https://github.com/CharonAI-code/charon/tree/main/skills/aeon) (`--path skills/aeon`) | 2 | Repo-local policy enforcement for AEON runs, with natural-language policy management. |\n| [aeon-skill-pack-agentlink](https://github.com/techdigger/aeon-skill-pack-agentlink) | 1 | Verified, human-backed on-chain identity on Base via AgentLink. Read-only, on-demand. |\n\n**To list a pack here**, open a PR that adds a table row **and** a matching [`catalog/skill-packs.json`](../catalog/skill-packs.json) entry. The full checklist - public repo + license, a per-skill `SKILL.md`, a `skills-pack.json` manifest, the registry schema, and the trust model - is in [`docs/community-skill-packs.md`](../docs/community-skill-packs.md#pack-maintainers-publishing-checklist).\n\n---\n\n## Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=aaronjmars/aeon\u0026type=Date)](https://www.star-history.com/#aaronjmars/aeon\u0026Date)\n\nSupport the project : 0xbf8e8f0e8866a7052f948c16508644347c57aba3\n\n---\n\n## Reference \u0026 advanced\n\nEverything above gets you running. The deeper reference lives in [`docs/`](../docs) so this page stays short.\n\n- **[Configuration \u0026 advanced](../docs/CONFIGURATION.md)** - skill chaining, reactive triggers, scheduler frequency, capability modes, MCP in runs, cross-repo tokens, `STRATEGY.md` / soul, Fleet Watcher, remote dashboard, two-repo setup, Actions cost.\n- **[LLM gateways](../docs/CONFIGURATION.md#llm-gateways)** - eight ways to power Claude Code, resolved by an automatic fail-over cascade.\n- **[Harnesses](../docs/harnesses.md)** - run skills on Claude Code or the Grok CLI; token accounting and per-skill knobs.\n- **[Knowledge (OKF)](../docs/OKF.md)** - Aeon's memory is a portable Open Knowledge Format bundle other agents can read.\n- **[Use Aeon's skills from Claude](../apps/mcp-server/README.md)** - every skill as an `aeon-\u003cname\u003e` MCP tool in Claude Desktop and Code.\n- **[Command line](../apps/cli/README.md)** - the whole dashboard as scriptable `./aeon` commands.\n- **[Telegram instant mode](../apps/webhook/README.md)** - ~1s replies via a self-hosted Cloudflare Worker.\n- **[Observability](../docs/langfuse.md)** and **[provenance](../docs/attestation.md)** - optional Langfuse tracing and Sigstore attestation.\n- **[Project layout](CONTRIBUTING.md#project-layout)** - an annotated tour of the repo.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronjmars%2Faeon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Faaronjmars%2Faeon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Faaronjmars%2Faeon/lists"}