context AGENTS.md

A repository guide for coding agents working on @context, a self-hosted assistant that stores and retrieves a user's work context. It explains the project structure and its owner-versus-guest access rules.

In plain words
What is it for?
Use it when changing, reviewing, or troubleshooting the @context codebase, especially features involving context sources, permissions, or agent tools.
Why use it?
It gives agents a shared source of instructions instead of making them infer the architecture and security model from scattered files.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/agno-agi/context/agents-md
Clone the repo
git clone --depth 1 https://github.com/agno-agi/context

Made for: Codex, OpenCode.

Per session 10,798 This file is loaded in full into every session.
When invoked 10,798 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.10798 $0.10798
Opus 5 $0.05399 $0.05399
Sonnet 5 $0.02160 $0.02160
Haiku 4.5 $0.01080 $0.01080

Measured 2d ago against content hash da4cb01137ef, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

context AGENTS.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

AGENTS.md · 290 lines

How it starts

The opening of the file, as written. The whole thing — 290 lines — stays where its author put it; the contents beside it link to each section on GitHub.

@context

This file is the source of truth for any agent (Claude Code, Codex, others) working in this repo. CLAUDE.md is a symlink to this file — edit one, both update.

What this is

@context is a self-hosted context agent — a professional alter-ego you own. One Agno agent that captures, files, and retrieves your working context across many sources, and that other people (and their agents) can leave updates with. Anyone can write to your context. Only you can read it — or act through it.

Two ideas define it:

  • The tool surface is the job description, not the union of every API. Each source is a ContextProvider: a sub-agent behind at most two tools — query_<id> (read) and update_<id> (write). The main agent sees 2N tools for N sources, and each source's quirks stay inside its own sub-agent's scope.
  • The asymmetry is the security model. The toolset is chosen in code, from a verified identity, before the model runs: the owner gets the full surface; everyone else gets the capture surface — submit_update (append to the owner's queue, no readback), my_updates (read back only their own submissions — the filter is the verified caller identity, closed over in code), and, when the calendar is connected, owner_availability (open windows from the free/busy API — intervals only, never event contents). A guest never holds a read tool into the owner's data, so "don't leak the owner's data" is structural, not a prompt rule. (One deliberate exception rides outside the toolset: per-user learning — @context remembers details about whoever talks to it (memory + profile), scoped to that caller's own identity, never the owner's data. See docs/SECURITY.md.)

Architecture

Context  (agents/context.py — one Agno agent, gpt-5.6-sol)
│
├── ContextProviders (agents/sources.py)        each source = query_<id> / update_<id>
│   ├── crm        DatabaseContextProvider        structured store (crm schema)  R/W  always on
│   ├── knowledge  WikiContextProvider            knowledge base — specs (FS → Git)  R/W  always on
│   ├── workspace  WorkspaceContextProvider       this repo's files                  R    always on
│   ├── web        WebContextProvider             Parallel (SDK or keyless MCP)      R    always on
│   ├── slack      SlackContextProvider           channel / DM history; send = update_slack (ungated)  R/W  SLACK_BOT_TOKEN set
│   ├── gmail      GmailContextProvider           inbox; update_gmail drafts only     R/W  GOOGLE_* set
│   └── calendar   GoogleCalendarContextProvider  events; write = act tool (approval) R/W* GOOGLE_* set
│        (*act tool — update_calendar — pauses for per-call owner approval. update_gmail only drafts (never sends), update_slack is ordinary messaging — both ungated.)
│
├── Inbound queue (agents/inbox.py)             submit_update + my_updates (everyone) / rundown + acknowledge (owner; acks DM the submitter a receipt)
│
├── Guest scheduling (agents/scheduling.py)     owner_availability — free/busy windows only (guest-held, iff GOOGLE_* set)
│
├── Workflows (workflows/ → WORKFLOWS)          runnable Agno Workflow objects (registered with AgentOS), owner-only
│   ├── reminders (workflows/reminders.py)      hourly sweep: queue_reminders → inbound queue  (+ the queue_reminders owner tool)
│   ├── digest    (workflows/digest.py)         daily rundown / weekly week-plan → owner Slack DM (auto-armed when SLACK_BOT_TOKEN set)
│   └── notify    (workflows/notify.py)         dm_owner() / dm_user() — proactive DMs: sweep + digests to the owner, ack receipts to submitters
│
├── Schedules (app/schedules.py)                register_schedules() — cron that fires the workflows (hourly sweep; Slack-gated digests)
│
├── Skills (skills/ + agents/policy.py)         owner-only playbooks  week-plan / daily-rundown / prep-for / process-today / research / knowledge-review
│
├── MCP server (app/mcp.py)                     owner-only `use_context` at /mcp (on by default) — read/act/file via Claude/ChatGPT desktop + CLI
│
└── Owner policy (agents/policy.py + app/identity.py)
    the identity-conditioned surface (instructions + toolset) + pre-hook + tool-hook — all from a verified id

Read the full file on GitHub · 290 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 290 lines · 10,798 tokens per session scan A da4cb01137ef

Subscribe to this mod's changes

context AGENTS.md is an instructions file published in the GitHub repository agno-agi/context (11 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 10,798 tokens to every session, about $0.0540 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.