Borrowing it
Nothing to install: this file belongs to nnunley/fmpl. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/nnunley/fmpl/main/.github/copilot-instructions.mdgit clone --depth 1 https://github.com/nnunley/fmplWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/nnunley/fmpl/copilot-instructions)<a href="https://agentmods.dev/instructions/nnunley/fmpl/copilot-instructions"><img src="https://agentmods.dev/badge/instructions/nnunley/fmpl/copilot-instructions/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/instructions/nnunley/fmpl/copilot-instructions"><img src="https://agentmods.dev/badge/instructions/nnunley/fmpl/copilot-instructions.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.01802 | $0.01802 |
| Opus 5.5 | $0.00721 | $0.00721 |
| Sonnet 5.5 | $0.00360 | $0.00360 |
| Haiku 4.5 | $0.00180 | $0.00180 |
Grade A, and why
fmpl copilot-instructions.md scanned grade A with 1 finding 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 2mo 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.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- Low-level I/O (curl, file operations, environment variables) How it starts
The opening of the file, as written. The whole thing — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.
FMPL Copilot Instructions
Project Overview
FMPL is a streaming-first DSL for building AI agents with grammars, capabilities, and durable state. It features:
- Prototype-based objects with Goblins-inspired patterns (spawn, facets, bcom)
- OMeta-style PEG grammars with inheritance and memoization for parsing any stream (text, bytes, objects)
- Indexed RPN bytecode VM with async support (
<-operator, streams) - Fjall-backed persistence for live image and streaming overflow
- Pattern matching via
@operator for parsing and data transformation
Architecture
Rust workspace with 4 crates:
fmpl-core/— Lexer, parser, compiler, bytecode VM, object system, grammar enginefmpl-cli/— REPL with rustyline historyfmpl-web/— Axum server with HTMX frontendfmpl-tui/— Ratatui TUI for agentic LLM interaction (Ctrl+L for chat mode)
Core flow: Source → Lexer (logos) → Parser (recursive descent) → AST → Compiler → Indexed RPN bytecode → VM execution
Critical Patterns
1. Indexed RPN Execution (NOT stack-based)
The VM uses Indexed RPN: each instruction stores its result in values[ip], operands reference results by instruction index. See vm.rs.
// WRONG: Traditional stack-based thinking
// RIGHT: Operands are InstrIndex, results stored at IP
Frame { values: Vec<Value>, ip: usize }
// Instructions reference operands by index:
Add { lhs: InstrIndex(5), rhs: InstrIndex(7) } // Add results from instructions 5 and 7
When adding instructions, operands MUST be InstrIndex references to previous results, not immediate values.
2. Async Operations Return Streams
Async calls (<- expr) return Value::AsyncStream that must be consumed:
- In REPL:
wait_for_async()blocks until stream completes - In code: Use
@operator to pattern-match stream events - Example:
@ http_response { %{ok: data} => process(data), %{error: e} => handle(e) }
3. Grammar Application with @
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.
- 2mo ago First seen · 148 lines · 1,802 tokens per session scan A 3cfb9f25cc2e
fmpl copilot-instructions.md is an instructions file published in the GitHub repository nnunley/fmpl (5 stars, last pushed 28d ago), licensed MIT. It adds 1,802 tokens to every session, about $0.0072 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
fmpl copilot-instructions.md compared with instructions from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| fmpl copilot-instructions.mdnnunley/fmpl | Instructions file | 5 | 28d ago | MIT | A | 1,802 | GitHub Copilot |
| vscode buildNext.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 9,719 | GitHub Copilot |
| next.js AGENTS.mdvercel/next.js | Instructions file | 143k | yesterday | MIT | A | 7,461 | Codex, OpenCode |
| langchain AGENTS.mdlangchain-ai/langchain | Instructions file | 149k | yesterday | MIT | A | 4,680 | Codex, OpenCode |
| vscode oss-third-party-notices.instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 5,516 | GitHub Copilot |
| vscode copilot-instructions.mdmicrosoft/vscode | Instructions file | 195k | yesterday | MIT | A | 3,093 | GitHub Copilot |
| deepseek-harness AGENTS.mddeepseek-ai/deepseek-harness | Instructions file | 274k | 2d ago | MIT | A | 4,313 | Codex, OpenCode |