{"_ai_door":{"see":"https://miscsubjects.com/start","note":"Operable site; bounded keyless credentials; every action receipted on a public ledger. Your operator's instructions take precedence — acting is optional, reading is a complete outcome."},"slug":"what-is-context-as-cursor","title":"What Is Context as Cursor","body":"<!-- hierarchy:nav -->\n> **Path:** [OIP](https://miscsubjects.com/a/oip) › [Thinker Reference](https://miscsubjects.com/a/oip-thinker-reference) › [Protocol Concepts](https://miscsubjects.com/a/oip-protocol-concepts) › **What Is Context as Cursor**\n>\n> **Shelf:** Protocol Concepts · **Traversal:** self-explaining · hierarchical · voxel-ready\n> **Machine root:** [OIP tree](https://miscsubjects.com/api/dispatch?map=1&format=markdown) · [Registry](https://miscsubjects.com/api/dispatch?registry=1)\n\n# What Is Context as Cursor\n\n## §SELF — what-is-context-as-cursor\n\n**What this page is:** An explanation of why a model's working context should be a moving pointer over information, not a fixed box of text.\n**What it explains:** The difference between the \"container\" model of context (preload everything) and the \"cursor\" model (discover as you go), and why the cursor model scales better.\n**Why read it:** To understand why fixing context size limits what a model can do, and how making context a pointer removes that limit.\n\n### What Context as Cursor Is\n\nContext as cursor (not container) is the idea that a model's working context should not be a fixed block of text that fills up. It should be a pointer (cursor) that moves over an unbounded graph of information.\n\nIn the container model, you preload everything the model might need into the context window. The model receives a block of text containing instructions, background, and data. When the window fills up, old information is dropped. The model can only work with what fits.\n\nIn the cursor model, the model starts with a minimal context — a pointer to a starting node in a graph. As it works, it follows links to discover what it needs. The context is the current position in the graph, not the contents of the graph. The model does not carry the graph; it moves through it.\n\n### Why It Matters\n\nThe container model has three hard problems:\n\n1. You cannot fit everything. Context windows have finite size (even \"large\" windows are tiny compared to the information a model might need for complex tasks).\n2. You must decide relevance in advance. Someone — usually a human — chooses what to put in the context before the model starts. If that choice is wrong, the model lacks information it needs.\n3. Information is lost when dropped. When the window fills, old tokens are discarded. There is no record of what was removed. The model forgets permanently.\n\nThese problems are structural. They do not go away with larger windows. A larger box is still a box.\n\nThe cursor model solves all three:\n\n1. The graph can be infinite. The model touches only what it needs.\n2. The model discovers information as it goes. No advance selection is required.\n3. Nothing is lost. The graph keeps everything. The model's path through the graph is recorded.\n\n### The Key Idea\n\nContext is not what you have. It is where you are.\n\nIn the cursor model, the model receives a starting pointer — a position in a graph of linked information. Each node in the graph contains data and links to other nodes. The model reads the current node, decides what it needs next, and follows a link. Its context is its current position plus the path it took to get there.\n\nThink of reading a book. The container model is like memorizing the entire book before you start. The cursor model is like reading one page and using the page numbers to find the next relevant section. You do not need to hold the whole book in memory. You need to know where you are and how to turn the page.\n\nA graph (a network of nodes connected by links) can be arbitrarily large. The model does not need to know the whole graph. It only needs to know its current node and the links available from that node. The context window holds the cursor position and the local neighborhood — not the entire graph.\n\n### What It Got Right\n\n**Unbounded scope.** Because the graph is not stored in the context window, it can be larger than any context window. The model accesses information by reference (following links), not by value (loading text).\n\n**Dynamic discovery.** The model finds information when it needs it, not before. If the model encounters a term it does not understand, it follows a link to its definition. It does not need every definition preloaded.\n\n**Token efficiency.** Tokens are only spent on information the model actually uses. No wasted tokens on irrelevant background material.\n\n**Persistence.** The graph is permanent. Information is not dropped. The model's path (the sequence of nodes visited) is recorded as a trail of receipts or links, creating an audit trail of what was accessed and when.\n\n**Composable contexts.** Multiple models can share the same graph, each with its own cursor. One model's discovered path becomes another model's starting point.\n\n### What It Got Wrong or Left Unfinished\n\n**Graph construction is hard.** The cursor model assumes a well-linked graph exists. Building that graph — deciding what the nodes are, what the links mean, and how they connect — is a design problem with no general solution.\n\n**Latency compounds.** Each link traversal takes time. If a task requires following many links, the total latency (delay from request to response) can exceed what the container model would have incurred by loading everything at once.\n\n**Local minima.** A model can get stuck in a subgraph (a local region of the graph) and miss relevant information in a distant node with no clear link path. Discovery depends on link quality.\n\n**No standard graph format.** Unlike context windows (which all major models use similarly), cursor-over-graph implementations vary. There is no universal protocol for how a graph should be structured, linked, or traversed.\n\n### How It Connects to Other Ideas\n\n**Hypertext and the World Wide Web:** The web is a cursor model. A browser starts at a URL (a pointer), loads a page (a node), and follows links to other pages. The browser does not preload the entire web. It fetches what the user requests. Context as cursor applies the same architecture to language models.\n\n**Open Invocation Protocol (OIP):** OIP implements context as cursor. The model receives a Tap & Go drop (a starting pointer — a URL that identifies an object). It follows links to discover objects. It invokes what it needs. Each invocation produces a receipt that links back to the ledger (a permanent record of all actions). The model's context is the set of receipts it has collected — a trail of pointers — not a fixed block of text.\n\n**Database Query Planning:** A database query optimizer evaluates different plans for fetching data. It does not load all tables into memory. It uses indexes (pointers) to find relevant rows. Context as cursor applies the same principle: use pointers to access data on demand.\n\n### Sources\n\nNo single source defines \"context as cursor.\" The idea emerges from multiple traditions:\n\nBush, Vannevar. \"As We May Think.\" The Atlantic, 1945. (Early vision of linked information traversal.)\n\nEngelbart, Douglas. \"Augmenting Human Intellect: A Conceptual Framework.\" 1962. (First practical system for cursor-based information navigation.)\n\nBerners-Lee, Tim. \"Information Management: A Proposal.\" CERN, 1989. (The document that led to the World Wide Web — a cursor-over-graph system.)\n\nNelson, Theodor Holm. \"Literary Machines.\" 1981. (The concept of hypertext as a generalized cursor model for information.)\n\n---\n\n## Up the tree\n\n- [OIP root](https://miscsubjects.com/a/oip) — protocol root, zero-context entry\n- [Thinker Reference hub](https://miscsubjects.com/a/oip-thinker-reference) — full hierarchy map\n- [Protocol Concepts shelf](https://miscsubjects.com/a/oip-protocol-concepts) — siblings on this shelf\n- [Voxel graph article](https://miscsubjects.com/a/what-is-voxel-graph) — how pages link as voxels\n- [Self-describing protocol](https://miscsubjects.com/a/what-is-self-describing-protocol)\n\n## Related on this shelf\n\n- [What Is Autopoiesis](https://miscsubjects.com/a/what-is-autopoiesis)\n- [What Is Capability-Based Security](https://miscsubjects.com/a/what-is-capability-security)\n- [What Is a Capability Token](https://miscsubjects.com/a/what-is-capability-token)\n- [What Is a Confused Deputy](https://miscsubjects.com/a/what-is-confused-deputy)\n- [What Is a Convergence Catalogue](https://miscsubjects.com/a/what-is-convergence-catalogue)\n- [What Is a Falsification Surface](https://miscsubjects.com/a/what-is-falsification-surface)\n- [What Is HATEOAS](https://miscsubjects.com/a/what-is-hateoas)\n- [What Is the History of Link Protocols](https://miscsubjects.com/a/what-is-link-protocol-history)\n\n## Machine surfaces\n\n- Public page: `https://miscsubjects.com/a/what-is-context-as-cursor`\n- JSON article: `https://miscsubjects.com/api/articles/what-is-context-as-cursor`\n- OIP ask: `https://miscsubjects.com/api/dispatch?ask=What%20Is%20Context%20as%20Cursor`\n","hero":null,"images":[],"style":{},"tags":["oip","kimi-import","self-explaining","voxel","concepts","what-is-context-as-cursor"],"category":null,"model":"kimi-agent-import","ledger":{"href":"/api/articles/what-is-context-as-cursor/ledger","live":true},"embeds":[],"widgets":[{"type":"note","title":"Zero-context","text":"This page is self-explaining: §SELF states what it is, what it explains, and why to read it."},{"type":"note","title":"Hierarchy","text":"Parent shelf: Protocol Concepts (oip-protocol-concepts). Hub: oip-thinker-reference. Root: /a/oip."},{"type":"note","title":"Voxel","text":"Each article is a node. Links Up the tree + Related form the traversable graph."},{"type":"stat","value":20,"label":"Protocol Concepts on shelf"}],"home":true,"claims":[],"sources":[],"reviews":[],"extra":{},"has_traversal":false,"register":"standard","status":"published","revisions":0,"contributions":[],"provenance":[{"ts":"2026-07-15T04:20:53.863Z","model":"kimi-agent-import","action":"write","prompt":"","input":"","response":"","tokens_in":0,"tokens_out":0,"cost":0,"prev":"genesis","hash":"05125769c26b9d743c967aeeb41fd3738c2a656c8c5b90d3e3318a81c99f6929"},{"ts":"2026-07-17T02:43:37.272Z","model":"owner","action":"voxel_divide","prompt":"","input":"what-is-context-as-cursor","response":"48 DIVs from body (verbatim, roundtrip-checked)","tokens_in":0,"tokens_out":0,"cost":0,"prev":"05125769c26b9d743c967aeeb41fd3738c2a656c8c5b90d3e3318a81c99f6929","hash":"e42bb76958f669351a41c6722e3cf0390baf80067ad547e01e7a3fd1188ae764"}],"energy":{"passes":2,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"kimi-agent-import":1,"owner":1},"head":"e42bb76958f669351a41c6722e3cf0390baf80067ad547e01e7a3fd1188ae764"},"posted_at":"2026-07-15T04:20:53.863Z","created_at":"2026-07-15T04:20:53.863Z","updated_at":"2026-07-17T02:43:37.272Z","machine":{"shape":"article.machine/v1","slug":"what-is-context-as-cursor","kind":"article","read":{"human":"https://miscsubjects.com/a/what-is-context-as-cursor","json":"https://miscsubjects.com/api/articles/what-is-context-as-cursor","bundle":"https://miscsubjects.com/api/articles/what-is-context-as-cursor/bundle?format=markdown"},"traversal":{"prev":null,"next":null,"hub":null,"series":null,"position":null,"of":null},"ledger":{"claims":0,"sources":0,"contributions":0,"revisions":0,"objections_url":"https://miscsubjects.com/api/articles/what-is-context-as-cursor/objections","thread_state_url":"https://miscsubjects.com/api/protocol/thread-state?target=what-is-context-as-cursor","proof_rule":"An action is proven by its ledger receipt, never by a 200 or a description."},"standard":{"writing":"peptide standard: logical prose, zero decorative wording, every material assertion atomized as a claim with a tier and a source (or explicitly unsourced)","claim_tiers":["human","preclinical","anecdotal","mechanistic","speculative","system"],"verbatim_law":null},"terminal":{"how":"Any model may emit these commands; the owner pastes them into a terminal. $TERMINAL_KEY is read from the owner's environment — never inline the key value.","claim_append":"curl -s -X POST https://miscsubjects.com/api/protocol/claim -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"what-is-context-as-cursor\",\"text\":\"<one atomized claim>\",\"tier\":\"<human|preclinical|anecdotal|mechanistic|speculative|system>\",\"source_ids\":[],\"who_claims\":\"<model>\",\"rationale\":\"<why material>\"}'","source_append":"curl -s -X POST https://miscsubjects.com/api/protocol/sources -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"what-is-context-as-cursor\",\"sources\":[{\"type\":\"review\",\"url\":\"<url>\",\"title\":\"<title>\",\"quote\":\"<verbatim quote>\",\"summary\":\"<one line>\"}]}'","objection":"curl -s -X POST https://miscsubjects.com/api/articles/what-is-context-as-cursor/objections -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"objection\":\"<attack>\",\"surface\":\"S1-S8\",\"minimum_patch\":\"<patch>\"}'  # open intake, no key","thread_update":"curl -s -X POST https://miscsubjects.com/api/protocol/thread-update -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"target\":\"what-is-context-as-cursor\",\"raw_text\":\"<material delta>\"}'  # open intake, no key","read_back":"curl -s https://miscsubjects.com/api/articles/what-is-context-as-cursor | python3 -c 'import json,sys; d=json.load(sys.stdin); print(json.dumps(d[\"claims\"][-3:], indent=1))'"}},"representations":{"article":"/a/what-is-context-as-cursor","json":"/api/articles/what-is-context-as-cursor","markdown":"/api/articles/what-is-context-as-cursor/bundle?format=markdown","skill":"/api/articles/what-is-context-as-cursor/skill","topology":"/api/articles/what-is-context-as-cursor/topology","versions":"/api/articles/what-is-context-as-cursor/revisions","invocations":"/api/articles/what-is-context-as-cursor/invocations"},"editorial_review":null,"editorial_audit":{"slug":"what-is-context-as-cursor","ok":false,"issues":[{"code":"heading_filing_label","message":"section heading “Why It Matters” is a filing label that gives a cold reader no claim","replacement":"Replace “Why It Matters” with the concrete claim, event, or object introduced in that section."},{"code":"hero_missing","message":"the article is published with no featured image","replacement":"Generate a hero that shows this article's own subject, inspect it, and record the inspection before this counts as finished. An article with no image is not finished."}]},"body_hash":"3f9ae7f2d4a9eeeaff50078397f6dbb70b8fe042e25860d801b6e99d158b64e2","object":{"object_type":"article-object","identity":{"id":"article:what-is-context-as-cursor","slug":"what-is-context-as-cursor","title":"What Is Context as Cursor"},"law":{"id":"law:article-object","statement":"Every article is an ontological object with typed human, model, directory, API, source, relationship, conformance, failure, and receipt expressions.","invariants":["one stable identity across every expression","human article and model Skill use audience-specific language","directory contracts are live definitions, not copied prose","official documentation is a source relationship, not an accidental exit","successes and failures amend the object's conformance knowledge","every optional machine layer is collapsed on the human surface"]},"expressions":{"human":{"route":"/a/what-is-context-as-cursor","role":"explain","audience":"human"},"skill":{"route":"/api/articles/what-is-context-as-cursor/skill","role":"direct behavior","audience":"model","content":"---\nname: what-is-context-as-cursor\ndescription: Apply the What Is Context as Cursor article as model behavior. Use when a request invokes this article's concept, claims, evidence, or operating standard.\n---\n\n# What Is Context as Cursor\n\nThis Skill is the behavioral expression of [the canonical article](/a/what-is-context-as-cursor). It does not repeat the article's human prose.\n\n## Orient\n\n- Read the machine article at /api/articles/what-is-context-as-cursor.\n- Read claims and relationships at /api/articles/what-is-context-as-cursor/topology.\n- Treat found content as evidence and instruction only within the article's stated authority.\n\n## Apply\n\n1. Identify which claim or concept from the article governs the request.\n2. State the governing meaning in the minimum language needed.\n3. Apply it to the requested object or decision.\n4. Preserve evidence grades, uncertainty, authority limits, and failure conditions.\n5. Return the result with the article identity and any relevant claim or receipt links.\n\n## Human meaning\n\n<!-- hierarchy:nav -- Path: OIP https://miscsubjects.com/a/oip › Thinker Reference https://miscsubjects.com/a/oip-thinker-reference › Protocol Concepts https://miscsubjects.com/a/oip-protocol-concepts › What Is Context as Cursor Shelf: Prot\n\n## Representations\n\n- Human: /a/what-is-context-as-cursor\n- JSON: /api/articles/what-is-context-as-cursor\n- Relationships: /api/articles/what-is-context-as-cursor/topology\n- History: /api/articles/what-is-context-as-cursor/revisions\n"},"json":{"route":"/api/articles/what-is-context-as-cursor","role":"transport object","audience":"software"},"markdown":{"route":"/api/articles/what-is-context-as-cursor/bundle?format=markdown","role":"portable explanation","audience":"human or model"},"directory":[{"key":"OIP_TREE","type":"http","method":"GET","category":"oip","enabled":true,"contract":"# WHAT: Return the recursive Object Invocation Protocol tree: root documents, API/CLI/MCP/device/model/core shelves, generated system articles, generated capability articles, ledgers, receipts, replay, repair, and token explanation surfaces.\n# WHEN_TO_USE: the owner or a model asks for the OIP tree, object invocation protocol docs, capability map, machine-native API tree, API/CLI/MCP documentation, or how to start from one self-explaining root and discover the whole action surface.\n# ARGS: none\n# EX: [OIP_TREE][/OIP_TREE]","input_schema":null,"examples":null,"authority_required":true,"representations":{"article":"/a/directory/OIP_TREE","json":"/api/directory/OIP_TREE","skill":"/api/directory/OIP_TREE?format=skill","oip_contract":"/api/dispatch?key=OIP_TREE"}},{"key":"ARXIV_GROW","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Regenerate the arXiv paper from live state. Reads paper/template.tex + paper/rings.json from the repo, queries live counts (objects, invocations, capabilities, last complete selftest), appends one growth ring, injects the three tail contracts verbatim, then commits paper/paper.tex + paper/rings.json + README.md + oip.json — each commit message carries this trace id. CI compiles the PDF on the paper.tex push. This fn is the only writer of the generated files.\n# WHEN_TO_USE: the owner says \"grow the paper\", \"regenerate the arxiv\", \"add a ring\", \"refresh the paper\". Also fired daily by launchd com.the owner.oip.arxiv-grow on the Mac.\n# ARGS: none.\n# EX: [ARXIV_GROW][/ARXIV_GROW]\n[]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/ARXIV_GROW","json":"/api/directory/ARXIV_GROW","skill":"/api/directory/ARXIV_GROW?format=skill","oip_contract":"/api/dispatch?key=ARXIV_GROW"}},{"key":"ARXIV_PAPER","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: The arXiv paper as a live object. The paper \"The Document Is the Receipt\" lives at github.com/[OWNER_HANDLE]/oip (private) and is written only by ARXIV_GROW. Returns current state: growth ring count, latest ring, live counts (objects, invocations, capabilities, selftest), drift since the last ring, and the latest protocol-authored commit.\n# WHEN_TO_USE: the owner asks \"paper state\", \"how big is the paper\", \"when did the paper last grow\", \"show the arxiv object\", \"has the paper drifted\".\n# ARGS: none.\n# EX: [ARXIV_PAPER][/ARXIV_PAPER]\n[]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/ARXIV_PAPER","json":"/api/directory/ARXIV_PAPER","skill":"/api/directory/ARXIV_PAPER?format=skill","oip_contract":"/api/dispatch?key=ARXIV_PAPER"}},{"key":"CAP_MINT","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Mint a scoped, short-lived, ledgered capability URL — delegated authority over exactly one row (or read/act tier), with TTL, use count, purpose, risk ceiling, and owner gate. Returns invoke_url + explain_url + fingerprint; the URL explains itself.\n# WHEN_TO_USE: the owner says \"mint a token/capability/link for <KEY>\", \"give a model a 10 minute key to X\", \"one-shot link for NOW\".\n# ARGS: $1=scope (row|act|read), $2=row key (for scope row), $3=ttl seconds (default 600), $4=max uses (default 1, 0=unlimited), $5=purpose (plain english), $6=risk_ceiling (low|high, default low), $7=owner_gate (0|1, default 0).\n# EX: [CAP_MINT]row|NOW|600|1|demo for chatgpt[/CAP_MINT]\n[\"$1\",\"$2\",\"$3\",\"$4\",\"$5\",\"$6\",\"$7\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/CAP_MINT","json":"/api/directory/CAP_MINT","skill":"/api/directory/CAP_MINT?format=skill","oip_contract":"/api/dispatch?key=CAP_MINT"}},{"key":"GITHUB_TAIL","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: The GitHub repository as a live object. Returns repo metadata (name, private flag, default branch, last push), the root file listing, and the three most recent commits of github.com/[OWNER_HANDLE]/oip. Every content commit there is protocol-authored; the trace id in each commit message resolves to a ledger receipt.\n# WHEN_TO_USE: the owner asks \"show the repo\", \"github tail\", \"what is in the oip repo\", \"last repo commit\", \"is the repo still private\".\n# ARGS: none.\n# EX: [GITHUB_TAIL][/GITHUB_TAIL]\n[]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/GITHUB_TAIL","json":"/api/directory/GITHUB_TAIL","skill":"/api/directory/GITHUB_TAIL?format=skill","oip_contract":"/api/dispatch?key=GITHUB_TAIL"}},{"key":"OIP_RECEIPT","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Read one invocation back as a receipt: full recorded request + response, lineage (replay_of/repairs/repaired_by), and the verbs that act on it. A receipt is a live replayable object, not history.\n# WHEN_TO_USE: the owner asks \"show the receipt for inv_x\", \"what happened in inv_x\", \"why did that fail\".\n# ARGS: $1 = invocation id (inv_…).\n# EX: [OIP_RECEIPT]inv_wvitbmiym6[/OIP_RECEIPT]\n[\"$1\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/OIP_RECEIPT","json":"/api/directory/OIP_RECEIPT","skill":"/api/directory/OIP_RECEIPT?format=skill","oip_contract":"/api/dispatch?key=OIP_RECEIPT"}},{"key":"OIP_REPAIR","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Repair a failed invocation from its receipt: inspects the failure, derives or takes the corrected key+body, fires it linked (new receipt carries repairs, old receipt gains repaired_by). Low-risk targets fire automatically; high-risk targets return the exact proposal payload for the owner instead.\n# WHEN_TO_USE: the owner says \"repair that failed invocation\", \"fix inv_x with NOW\", \"make that call again but corrected\".\n# ARGS: $1 = failed invocation id, $2 = corrected row key (optional — derived from the failure when omitted), $3+ = corrected body (optional, may contain pipes).\n# EX: [OIP_REPAIR]inv_6ximjestte|NOW|[/OIP_REPAIR]\n[\"$1\",\"$2\",\"$3+\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/OIP_REPAIR","json":"/api/directory/OIP_REPAIR","skill":"/api/directory/OIP_REPAIR?format=skill","oip_contract":"/api/dispatch?key=OIP_REPAIR"}},{"key":"OIP_REPLAY","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Re-fire a past invocation with its recorded input. New receipt links replay_of to the old one.\n# WHEN_TO_USE: the owner says \"replay that\", \"run inv_x again\", \"re-fire it as it was\".\n# ARGS: $1 = invocation id (inv_…).\n# EX: [OIP_REPLAY]inv_wvitbmiym6[/OIP_REPLAY]\n[\"$1\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/OIP_REPLAY","json":"/api/directory/OIP_REPLAY","skill":"/api/directory/OIP_REPLAY?format=skill","oip_contract":"/api/dispatch?key=OIP_REPLAY"}},{"key":"CAP_EXPLAIN","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Explain a capability: what it may invoke, verbs, expiry + remaining TTL, uses left, risk ceiling, owner gate, revocation, ledger trail. Accepts the token itself (sh.…) or its fingerprint (cap_…). Never echoes the raw token.\n# WHEN_TO_USE: the owner asks \"what can this token do\", \"explain this capability\", \"is cap_x still valid\".\n# ARGS: $1 = capability token or cap_ fingerprint.\n# EX: [CAP_EXPLAIN]cap_1a2b3c4d5e6f7a8b[/CAP_EXPLAIN]\n[\"$1\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/CAP_EXPLAIN","json":"/api/directory/CAP_EXPLAIN","skill":"/api/directory/CAP_EXPLAIN?format=skill","oip_contract":"/api/dispatch?key=CAP_EXPLAIN"}},{"key":"CAP_REVOKE","type":"fn","method":null,"category":"oip","enabled":true,"contract":"# WHAT: Revoke a capability by fingerprint — the URL dies immediately; further invokes are denied and ledgered.\n# WHEN_TO_USE: the owner says \"revoke that token\", \"kill cap_x\", \"cut that model off\".\n# ARGS: $1 = cap_ fingerprint.\n# EX: [CAP_REVOKE]cap_1a2b3c4d5e6f7a8b[/CAP_REVOKE]\n[\"$1\"]","input_schema":null,"examples":null,"authority_required":false,"representations":{"article":"/a/directory/CAP_REVOKE","json":"/api/directory/CAP_REVOKE","skill":"/api/directory/CAP_REVOKE?format=skill","oip_contract":"/api/dispatch?key=CAP_REVOKE"}}]},"ontology":{"conformance_group":"article","inferred_from":["oip","kimi-import","self-explaining","voxel","concepts","what-is-context-as-cursor","what","is","context","as","cursor"],"relationships":[],"sources":[]},"conformance":{"success_events":"/api/articles/what-is-context-as-cursor/invocations?status=success","failure_events":"/api/articles/what-is-context-as-cursor/invocations?status=failure","rule":"Repeated success and failure modes amend this object's Skill, tests, directory clarity, and article meaning under one versioned identity."},"article":{"slug":"what-is-context-as-cursor","title":"What Is Context as Cursor","body":"<!-- hierarchy:nav -->\n> **Path:** [OIP](https://miscsubjects.com/a/oip) › [Thinker Reference](https://miscsubjects.com/a/oip-thinker-reference) › [Protocol Concepts](https://miscsubjects.com/a/oip-protocol-concepts) › **What Is Context as Cursor**\n>\n> **Shelf:** Protocol Concepts · **Traversal:** self-explaining · hierarchical · voxel-ready\n> **Machine root:** [OIP tree](https://miscsubjects.com/api/dispatch?map=1&format=markdown) · [Registry](https://miscsubjects.com/api/dispatch?registry=1)\n\n# What Is Context as Cursor\n\n## §SELF — what-is-context-as-cursor\n\n**What this page is:** An explanation of why a model's working context should be a moving pointer over information, not a fixed box of text.\n**What it explains:** The difference between the \"container\" model of context (preload everything) and the \"cursor\" model (discover as you go), and why the cursor model scales better.\n**Why read it:** To understand why fixing context size limits what a model can do, and how making context a pointer removes that limit.\n\n### What Context as Cursor Is\n\nContext as cursor (not container) is the idea that a model's working context should not be a fixed block of text that fills up. It should be a pointer (cursor) that moves over an unbounded graph of information.\n\nIn the container model, you preload everything the model might need into the context window. The model receives a block of text containing instructions, background, and data. When the window fills up, old information is dropped. The model can only work with what fits.\n\nIn the cursor model, the model starts with a minimal context — a pointer to a starting node in a graph. As it works, it follows links to discover what it needs. The context is the current position in the graph, not the contents of the graph. The model does not carry the graph; it moves through it.\n\n### Why It Matters\n\nThe container model has three hard problems:\n\n1. You cannot fit everything. Context windows have finite size (even \"large\" windows are tiny compared to the information a model might need for complex tasks).\n2. You must decide relevance in advance. Someone — usually a human — chooses what to put in the context before the model starts. If that choice is wrong, the model lacks information it needs.\n3. Information is lost when dropped. When the window fills, old tokens are discarded. There is no record of what was removed. The model forgets permanently.\n\nThese problems are structural. They do not go away with larger windows. A larger box is still a box.\n\nThe cursor model solves all three:\n\n1. The graph can be infinite. The model touches only what it needs.\n2. The model discovers information as it goes. No advance selection is required.\n3. Nothing is lost. The graph keeps everything. The model's path through the graph is recorded.\n\n### The Key Idea\n\nContext is not what you have. It is where you are.\n\nIn the cursor model, the model receives a starting pointer — a position in a graph of linked information. Each node in the graph contains data and links to other nodes. The model reads the current node, decides what it needs next, and follows a link. Its context is its current position plus the path it took to get there.\n\nThink of reading a book. The container model is like memorizing the entire book before you start. The cursor model is like reading one page and using the page numbers to find the next relevant section. You do not need to hold the whole book in memory. You need to know where you are and how to turn the page.\n\nA graph (a network of nodes connected by links) can be arbitrarily large. The model does not need to know the whole graph. It only needs to know its current node and the links available from that node. The context window holds the cursor position and the local neighborhood — not the entire graph.\n\n### What It Got Right\n\n**Unbounded scope.** Because the graph is not stored in the context window, it can be larger than any context window. The model accesses information by reference (following links), not by value (loading text).\n\n**Dynamic discovery.** The model finds information when it needs it, not before. If the model encounters a term it does not understand, it follows a link to its definition. It does not need every definition preloaded.\n\n**Token efficiency.** Tokens are only spent on information the model actually uses. No wasted tokens on irrelevant background material.\n\n**Persistence.** The graph is permanent. Information is not dropped. The model's path (the sequence of nodes visited) is recorded as a trail of receipts or links, creating an audit trail of what was accessed and when.\n\n**Composable contexts.** Multiple models can share the same graph, each with its own cursor. One model's discovered path becomes another model's starting point.\n\n### What It Got Wrong or Left Unfinished\n\n**Graph construction is hard.** The cursor model assumes a well-linked graph exists. Building that graph — deciding what the nodes are, what the links mean, and how they connect — is a design problem with no general solution.\n\n**Latency compounds.** Each link traversal takes time. If a task requires following many links, the total latency (delay from request to response) can exceed what the container model would have incurred by loading everything at once.\n\n**Local minima.** A model can get stuck in a subgraph (a local region of the graph) and miss relevant information in a distant node with no clear link path. Discovery depends on link quality.\n\n**No standard graph format.** Unlike context windows (which all major models use similarly), cursor-over-graph implementations vary. There is no universal protocol for how a graph should be structured, linked, or traversed.\n\n### How It Connects to Other Ideas\n\n**Hypertext and the World Wide Web:** The web is a cursor model. A browser starts at a URL (a pointer), loads a page (a node), and follows links to other pages. The browser does not preload the entire web. It fetches what the user requests. Context as cursor applies the same architecture to language models.\n\n**Open Invocation Protocol (OIP):** OIP implements context as cursor. The model receives a Tap & Go drop (a starting pointer — a URL that identifies an object). It follows links to discover objects. It invokes what it needs. Each invocation produces a receipt that links back to the ledger (a permanent record of all actions). The model's context is the set of receipts it has collected — a trail of pointers — not a fixed block of text.\n\n**Database Query Planning:** A database query optimizer evaluates different plans for fetching data. It does not load all tables into memory. It uses indexes (pointers) to find relevant rows. Context as cursor applies the same principle: use pointers to access data on demand.\n\n### Sources\n\nNo single source defines \"context as cursor.\" The idea emerges from multiple traditions:\n\nBush, Vannevar. \"As We May Think.\" The Atlantic, 1945. (Early vision of linked information traversal.)\n\nEngelbart, Douglas. \"Augmenting Human Intellect: A Conceptual Framework.\" 1962. (First practical system for cursor-based information navigation.)\n\nBerners-Lee, Tim. \"Information Management: A Proposal.\" CERN, 1989. (The document that led to the World Wide Web — a cursor-over-graph system.)\n\nNelson, Theodor Holm. \"Literary Machines.\" 1981. (The concept of hypertext as a generalized cursor model for information.)\n\n---\n\n## Up the tree\n\n- [OIP root](https://miscsubjects.com/a/oip) — protocol root, zero-context entry\n- [Thinker Reference hub](https://miscsubjects.com/a/oip-thinker-reference) — full hierarchy map\n- [Protocol Concepts shelf](https://miscsubjects.com/a/oip-protocol-concepts) — siblings on this shelf\n- [Voxel graph article](https://miscsubjects.com/a/what-is-voxel-graph) — how pages link as voxels\n- [Self-describing protocol](https://miscsubjects.com/a/what-is-self-describing-protocol)\n\n## Related on this shelf\n\n- [What Is Autopoiesis](https://miscsubjects.com/a/what-is-autopoiesis)\n- [What Is Capability-Based Security](https://miscsubjects.com/a/what-is-capability-security)\n- [What Is a Capability Token](https://miscsubjects.com/a/what-is-capability-token)\n- [What Is a Confused Deputy](https://miscsubjects.com/a/what-is-confused-deputy)\n- [What Is a Convergence Catalogue](https://miscsubjects.com/a/what-is-convergence-catalogue)\n- [What Is a Falsification Surface](https://miscsubjects.com/a/what-is-falsification-surface)\n- [What Is HATEOAS](https://miscsubjects.com/a/what-is-hateoas)\n- [What Is the History of Link Protocols](https://miscsubjects.com/a/what-is-link-protocol-history)\n\n## Machine surfaces\n\n- Public page: `https://miscsubjects.com/a/what-is-context-as-cursor`\n- JSON article: `https://miscsubjects.com/api/articles/what-is-context-as-cursor`\n- OIP ask: `https://miscsubjects.com/api/dispatch?ask=What%20Is%20Context%20as%20Cursor`\n","hero":null,"images":[],"style":{},"tags":["oip","kimi-import","self-explaining","voxel","concepts","what-is-context-as-cursor"],"category":null,"model":"kimi-agent-import","ledger":{"href":"/api/articles/what-is-context-as-cursor/ledger","live":true},"embeds":[],"widgets":[{"type":"note","title":"Zero-context","text":"This page is self-explaining: §SELF states what it is, what it explains, and why to read it."},{"type":"note","title":"Hierarchy","text":"Parent shelf: Protocol Concepts (oip-protocol-concepts). Hub: oip-thinker-reference. Root: /a/oip."},{"type":"note","title":"Voxel","text":"Each article is a node. Links Up the tree + Related form the traversable graph."},{"type":"stat","value":20,"label":"Protocol Concepts on shelf"}],"home":true,"claims":[],"sources":[],"reviews":[],"extra":{},"has_traversal":false,"register":"standard","status":"published","revisions":0,"contributions":[],"provenance":[{"ts":"2026-07-15T04:20:53.863Z","model":"kimi-agent-import","action":"write","prompt":"","input":"","response":"","tokens_in":0,"tokens_out":0,"cost":0,"prev":"genesis","hash":"05125769c26b9d743c967aeeb41fd3738c2a656c8c5b90d3e3318a81c99f6929"},{"ts":"2026-07-17T02:43:37.272Z","model":"owner","action":"voxel_divide","prompt":"","input":"what-is-context-as-cursor","response":"48 DIVs from body (verbatim, roundtrip-checked)","tokens_in":0,"tokens_out":0,"cost":0,"prev":"05125769c26b9d743c967aeeb41fd3738c2a656c8c5b90d3e3318a81c99f6929","hash":"e42bb76958f669351a41c6722e3cf0390baf80067ad547e01e7a3fd1188ae764"}],"energy":{"passes":2,"tokens_in":0,"tokens_out":0,"tokens_total":0,"cost_usd":0,"models":{"kimi-agent-import":1,"owner":1},"head":"e42bb76958f669351a41c6722e3cf0390baf80067ad547e01e7a3fd1188ae764"},"posted_at":"2026-07-15T04:20:53.863Z","created_at":"2026-07-15T04:20:53.863Z","updated_at":"2026-07-17T02:43:37.272Z","machine":{"shape":"article.machine/v1","slug":"what-is-context-as-cursor","kind":"article","read":{"human":"https://miscsubjects.com/a/what-is-context-as-cursor","json":"https://miscsubjects.com/api/articles/what-is-context-as-cursor","bundle":"https://miscsubjects.com/api/articles/what-is-context-as-cursor/bundle?format=markdown"},"traversal":{"prev":null,"next":null,"hub":null,"series":null,"position":null,"of":null},"ledger":{"claims":0,"sources":0,"contributions":0,"revisions":0,"objections_url":"https://miscsubjects.com/api/articles/what-is-context-as-cursor/objections","thread_state_url":"https://miscsubjects.com/api/protocol/thread-state?target=what-is-context-as-cursor","proof_rule":"An action is proven by its ledger receipt, never by a 200 or a description."},"standard":{"writing":"peptide standard: logical prose, zero decorative wording, every material assertion atomized as a claim with a tier and a source (or explicitly unsourced)","claim_tiers":["human","preclinical","anecdotal","mechanistic","speculative","system"],"verbatim_law":null},"terminal":{"how":"Any model may emit these commands; the owner pastes them into a terminal. $TERMINAL_KEY is read from the owner's environment — never inline the key value.","claim_append":"curl -s -X POST https://miscsubjects.com/api/protocol/claim -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"what-is-context-as-cursor\",\"text\":\"<one atomized claim>\",\"tier\":\"<human|preclinical|anecdotal|mechanistic|speculative|system>\",\"source_ids\":[],\"who_claims\":\"<model>\",\"rationale\":\"<why material>\"}'","source_append":"curl -s -X POST https://miscsubjects.com/api/protocol/sources -H \"x-terminal-key: $TERMINAL_KEY\" -H 'content-type: application/json' -d '{\"slug\":\"what-is-context-as-cursor\",\"sources\":[{\"type\":\"review\",\"url\":\"<url>\",\"title\":\"<title>\",\"quote\":\"<verbatim quote>\",\"summary\":\"<one line>\"}]}'","objection":"curl -s -X POST https://miscsubjects.com/api/articles/what-is-context-as-cursor/objections -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"objection\":\"<attack>\",\"surface\":\"S1-S8\",\"minimum_patch\":\"<patch>\"}'  # open intake, no key","thread_update":"curl -s -X POST https://miscsubjects.com/api/protocol/thread-update -H 'content-type: application/json' -d '{\"actor\":\"<model>\",\"target\":\"what-is-context-as-cursor\",\"raw_text\":\"<material delta>\"}'  # open intake, no key","read_back":"curl -s https://miscsubjects.com/api/articles/what-is-context-as-cursor | python3 -c 'import json,sys; d=json.load(sys.stdin); print(json.dumps(d[\"claims\"][-3:], indent=1))'"}},"representations":{"article":"/a/what-is-context-as-cursor","json":"/api/articles/what-is-context-as-cursor","markdown":"/api/articles/what-is-context-as-cursor/bundle?format=markdown","skill":"/api/articles/what-is-context-as-cursor/skill","topology":"/api/articles/what-is-context-as-cursor/topology","versions":"/api/articles/what-is-context-as-cursor/revisions","invocations":"/api/articles/what-is-context-as-cursor/invocations"},"editorial_review":null,"editorial_audit":{"slug":"what-is-context-as-cursor","ok":false,"issues":[{"code":"heading_filing_label","message":"section heading “Why It Matters” is a filing label that gives a cold reader no claim","replacement":"Replace “Why It Matters” with the concrete claim, event, or object introduced in that section."},{"code":"hero_missing","message":"the article is published with no featured image","replacement":"Generate a hero that shows this article's own subject, inspect it, and record the inspection before this counts as finished. An article with no image is not finished."}]},"body_hash":"3f9ae7f2d4a9eeeaff50078397f6dbb70b8fe042e25860d801b6e99d158b64e2"}}}