threadlane: Instructions file for Codex

AGENTS.md

threadlane AGENTS.md is an instructions file for Codex, OpenCode from wheregmis/threadlane. It costs 24,152 tokens per session, scanned A, original, MIT.

Repository instructions for the wheregmis/threadlane project. They describe the agent instruction file, project scope, repository layout, common commands, and quick checks for desktop-app changes.

In plain words
What is it for?
Making changes to the Threadlane desktop app and checking those changes using the project's documented workflow.
Why use it?
They give a coding agent the project-specific context needed to work in the repository. This reduces guesswork about files, commands, and validation.

Instructions file for CodexOpenCode

Written for Codex and OpenCode: the file is AGENTS.md. Also seen: mentions subagents; mentions Claude Code; mentions AGENTS.md.

This is wheregmis/threadlane's own configuration. It tells Codex and OpenCode how to work on threadlane itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything threadlane configures →

Reuse

Borrowing it

Nothing to install: this file belongs to wheregmis/threadlane. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/wheregmis/threadlane/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/wheregmis/threadlane

Made for: Codex, OpenCode.

Wrote 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.

agentmods badge for threadlane AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/wheregmis/threadlane/agents-md/github.svg)](https://agentmods.dev/instructions/wheregmis/threadlane/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/wheregmis/threadlane/agents-md"><img src="https://agentmods.dev/badge/instructions/wheregmis/threadlane/agents-md/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.

agentmods 80×15 button for threadlane AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/wheregmis/threadlane/agents-md"><img src="https://agentmods.dev/badge/instructions/wheregmis/threadlane/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 24,152 This file is loaded in full into every session.
When invoked 24,152 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.24152 $0.24152
Opus 5.5 $0.09661 $0.09661
Sonnet 5.5 $0.04830 $0.04830
Haiku 4.5 $0.02415 $0.02415

Measured 11d ago against content hash d543ca90ce3c, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

threadlane 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 11d 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 · 380 lines

How it starts

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

AGENTS.md

Guidance for coding agents working in the Threadlane repository.

Scope

This file applies to the entire repository.

Threadlane is a Rust workspace centered on a native GPUI desktop application (crates/threadlane-gpui). Keep changes focused, preserve the existing visual language, and prefer established project patterns over introducing new frameworks or dependencies.

Repository Map

  • crates/threadlane-gpui/ — GPUI desktop application binary shell (main.rs + empty lib): window setup, logging, --dump-config, and composition of the threadlane-ui-* crates. Holds no product code; add new UI to a focused leaf crate instead.
  • crates/threadlane-ui-workspace/ — window root (WorkspaceView): composes chat, sidebar, panels, terminal, settings, and GitHub over one AppState; owns global keybindings and background event pumps. Terminal tabs/menus, toolbar, unavailable state, and the bottom split use threadlane-ui-kit; this host retains project groups, PTYs, selection handoff and shell-identity close guards.
  • crates/threadlane-ui-kit/ — controlled agent UI components shared by desktop and iOS: conversation, composer, reasoning/tool disclosures, decisions, session navigation, and result surfaces. Replaces threadlane-ui-session; extend this kit before adding another presentation path. examples/preview runs the shared saved-session workspace and a Components gallery on native GPUI and WASM (trunk serve from that folder). --import-session <jsonl> reads canonical durable history into ignored session.local.json; previews never modify the original session. Agents profile/status/header/activity presentation (including the shared chat tool disclosures), sidebar/workspace/composer atoms, environment and Git menu presentation, token-efficiency rows, context-meter primitives, and tool output renderers belong in the kit; host services and file guards remain in feature crates. Composer @ file picker presentation, caret-query parsing, matching, insertion formatting, and scoped bindings live in threadlane-ui-kit::file_completion; the desktop host retains asynchronous inventory/existence services and must recheck composer identity, checkout, picker generation, and dismissal after a probe yields. Preview imports capture a read-only Git file inventory and never probe the browser host filesystem. Responsive workspace geometry, compact right-panel focus, sidebar controls and split restoration live in the kit and are reused by desktop and native/WASM preview. Agent worktree controls and Discard confirmation also live in the kit; native hosts retain guarded daemon/Git operations, and preview imports capture read-only branch diffs and availability. Shared font registration lives in the theme crate. Serializable token-efficiency report types live in threadlane-protocol::efficiency; the read-only journal projector stays in the runtime harness.
  • crates/threadlane-ui-theme/ — shared GPUI visual language: theme registry wiring, design tokens (WINDOW_CONTROLS_CLEARANCE, overlay_scrim()), bundled themes/threadlane.json, and vendored assets/icons/. Depends only on GPUI/kit plus threadlane-project for the global dir; every screen crate uses it, never the reverse.
  • crates/threadlane-daemon/ — headless, GPUI-free service core a future daemon process wraps: session discovery/projection, chat turn services (chat: prompt execution, titles, ACP config), the agent-event adapter, background services (provider_auth, settings, updater), worktree setup, the automation application service, the next_event_batch stream helper, and the picker-facing model catalog (catalog: provider inventory, live discovery caches, effort metadata — the four *_and_update refresh wrappers that need Entity<AppState> live in threadlane-ui-settings, which the workspace shell imports directly), and the read-only conversation-text scan (conversation_search). threadlane-ui-state re-exports all of it for compatibility.
  • crates/threadlane-ui-sidebar/ — project/session sidebar plus the shared keybindable BeginNewTask action (owned here because the sidebar's buttons dispatch it; the workspace shell imports the type for its cmd-N binding). Its Snoozed group is presentation-only and local-only: snooze records live in .threadlane/session_snooze.json per workdir (written through threadlane_ui_state::SessionSnoozeWriter) and only reorder history rows — they never schedule, stop, or delay an agent, touch a worktree, acknowledge a result, or reach the daemon. Reconciliation (AppState::reconcile_session_snoozes plus the sidebar's single deadline task) decides visibility; expired/invalid records fail open. Complete session cards, action menus, snoozed/empty history presentation, and archive/remove dialog surfaces live in threadlane-ui-kit; this host retains history filtering/cache/virtualization, canonical snooze mapping, and guarded service callbacks. Archive icons preserve the existing direct archive for ordinary checkouts and confirmation for worktrees; menu archive/remove always use confirmation.
  • crates/threadlane-ui-state/ — durable desktop UI state, GPUI-free: AppState, app intent (actions/controller), and UI-only types (workspace page, composer/insert requests, GitHub tab). Session services moved to threadlane-daemon and are re-exported here (chat, discovery, projection, automation, provider_auth, settings, updater, worktree_setup, agent_events, catalog, session/projection types) so existing threadlane_ui_state::* paths keep working; file watching lives in threadlane-project::watcher.
  • crates/threadlane-ui-terminal/ — self-contained PTY terminal view (TerminalView::new(PathBuf, cx)): portable-pty session, frame-budgeted parsing, and GPUI rendering. Depends on threadlane-ui-kit for shared terminal chrome, ANSI grid presentation, measured geometry, selection helpers, find/link presentation and keybindings, output menus/status/live-output controls, with no AppState or service-crate dependency; the workspace screen constructs it directly. Search workers, frame/URL validation and PTY lifecycle stay here.
  • crates/threadlane-ui-chat/ — chat surface (ChatListView, CentralTab, composer/transcript/trajectory/context-meter): depends on threadlane-ui-state, threadlane-daemon (model catalog), threadlane-ui-theme, plus threadlane-ui-editor and threadlane-ui-mirror which it embeds.
  • crates/threadlane-ui-editor/ — file editor view (EditorView, SaveFile action); depends only on threadlane-ui-state (+rfd, tracing).
  • crates/threadlane-ui-mirror/ — computer-use live mirror (MirrorView over threadlane-protocol::live frames); depends only on threadlane-ui-state. NOTE: never use use super::* in #[cfg(test)] modules of GPUI-heavy crates — the glob pulls gpui macros into test scope and cargo check --tests hangs in macro expansion (needs recursion_limit >= 2048, and even that hangs). Explicit test imports compile in ~2s at the default limit. Hit in ui-mirror and ui-workspace.
  • crates/threadlane-ui-settings/ — settings screen plus the model-catalog *_and_update refresh wrappers (they need Entity<AppState>, so they cannot live in GPUI-free threadlane-daemon).
  • crates/threadlane-ui-github/ — GitHub issues/PRs/diffs/review timelines; view::init registers its actions.
  • crates/threadlane-ui-right-panel/ — git review, draft PRs, embedded browser (macOS gpui-wry view, stub elsewhere), and file surfaces. retain_review_selection is specified by tests.rs; keep them in sync.
  • crates/threadlane-runtime/ — agent execution engine, harness V2 durability, provider routing, compaction, and turn driver. Depends on threadlane-provider, never the reverse.
  • crates/threadlane-coding-agent/ — coding-agent engine: CodingAgent runtime, durable harness, subagents, scheduler, mailbox, capabilities, controller (SessionController; also home of the SessionRuntime alias, runtime_status_text, spawn_session_runtime_construction, and the test-support provider-injection helper consumed by the GPUI crates), config_dump, the acp_stub_agent test fixture plus engine integration tests/, and the session-owned adapters it is built from (commands, computer, credentials, mcp). The threadlane-gpui binary calls config_dump and owns process_environment directly. There is no separate threadlane-session crate; UI crates import threadlane_coding_agent::controller directly.
  • crates/threadlane-acp-engine/ — external-agent turn engine (AcpEngine::run_turn, generate_title), the AgentEvent bridge, the workspace-scoped session_workspace_client (single shared threadlane-tools path guard), and the ACP agent presets registry. Deps: threadlane-acp, -runtime, -permission, -tools, -project only; the coding-agent crate consumes it, never the reverse.
  • crates/threadlane-provider/ — dependency-free provider layer: payload translation (convert), model registry, shared Tokio reactor (exec), and per-backend clients. Takes credentials as arguments/traits, never reads a credential store.
  • crates/threadlane-protocol/ — shared contract types: wire shapes plus the model-visible message cluster (messages: AgentMessage, AgentToolDefinition, ReasoningEffort, …), user-interaction contracts (interaction: PermissionRequest/PermissionScope, QuestionRequest/QuestionAnswer, …), and the GPUI-free transcript helpers (transcript: row building, literal find_conversation_messages/matching_excerpt/next_find_match, prompt landmarks) shared by the UI transcript and the daemon conversation scan.
  • crates/threadlane-tools/ — tool implementations and capability support.
  • crates/threadlane-auth/ — authentication helpers.
  • crates/threadlane-computer/ — native computer-use tools (macOS window listing, screenshots, input) behind the ComputerApproval trait; the coding-agent engine implements approval with its permission manager.
  • crates/threadlane-git/ — git repository integration and PR review feedback (forge types, actionable-feedback extraction, tracking store, auto-address prompts). Agent-owned PR lifecycle instructions are shared from threadlane-prompt::git_workflow; native Git sessions expose credential-aware github_pr operations through github::agent. Keep read-only versus mutating tool-policy classification synchronized when adding actions; never turn local-only tasks or reply drafts into publication/merge authorization.
  • crates/threadlane-updater/ — signed update checks, downloads, installation, and relaunch.
  • crates/threadlane-wasi/ — WASI extension runner.
  • extensions/ — WASI extensions built for wasm32-wasip1.
  • scripts/build_extensions.sh — builds and deploys bundled extensions, agents, and prompts into .threadlane/.
  • packaging/, .github/workflows/, and package metadata — release and platform packaging.

Read the full file on GitHub · 380 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. 11d ago Changed · +61 tokens per session d543ca90ce3c
  2. 22d ago Changed · +40 tokens per session 01bbca8fba33
  3. 24d ago Changed · +1 lines · +162 tokens per session ba87ae06ce61
  4. 25d ago Changed · +1 lines · +304 tokens per session e5c1b7bd9f81
  5. 27d ago Changed · +1 lines · +246 tokens per session 6f627350e166
  6. 28d ago Changed · +8 lines · +555 tokens per session be4c053c3d45
  7. 29d ago Changed · +2 lines · +170 tokens per session 71d50e680cbc
  8. 1mo ago Changed · +6 lines · +1,162 tokens per session ae65e7316d44
  9. 1mo ago Changed · +19 lines · +2,659 tokens per session 3d76052420bc
  10. 1mo ago First seen · 342 lines · 18,793 tokens per session scan A 9b3e5b809518

Subscribe to this mod's changes

threadlane AGENTS.md is an instructions file published in the GitHub repository wheregmis/threadlane (24 stars, last pushed 2d ago), licensed MIT. It adds 24,152 tokens to every session, about $0.0966 per session on Opus 5.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-31.

Related

threadlane AGENTS.md compared with instructions from other repositories

threadlane AGENTS.md next to 6 instructions from other repositories
ModTypeStarsLast pushLicenceScanTokensWorks with
threadlane AGENTS.mdwheregmis/threadlaneInstructions file242d agoMITA24,152Codex, OpenCode
vscode buildNext.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA9,719GitHub Copilot
next.js AGENTS.mdvercel/next.jsInstructions file143ktodayMITA7,461Codex, OpenCode
langchain AGENTS.mdlangchain-ai/langchainInstructions file149kyesterdayMITA4,680Codex, OpenCode
vscode oss-third-party-notices.instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA5,516GitHub Copilot
vscode copilot-instructions.mdmicrosoft/vscodeInstructions file195kyesterdayMITA3,093GitHub Copilot
deepseek-harness AGENTS.mddeepseek-ai/deepseek-harnessInstructions file274k2d agoMITA4,313Codex, OpenCode