emdash AGENTS.md

Repository instructions for Emdash, a desktop app that runs multiple AI coding agents in parallel, with each task isolated in its own Git worktree.

In plain words
What is it for?
They help with the Electron desktop app, remote workspace server, shared chat interface, agent coordination, integrations, testing, and releases.
Why use it?
They explain the monorepo, a repository containing multiple apps and shared packages, so changes are made in the correct place and follow the project architecture.

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/generalaction/emdash/agents-md
Clone the repo
git clone --depth 1 https://github.com/generalaction/emdash

Made for: Codex, OpenCode.

Per session 5,643 This file is loaded in full into every session.
When invoked 5,643 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.05643 $0.05643
Opus 5 $0.02821 $0.02821
Sonnet 5 $0.01129 $0.01129
Haiku 4.5 $0.00564 $0.00564

Measured yesterday against content hash 75df1adfbc3c, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

emdash 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 yesterday.

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 · 420 lines

How it starts

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

Project Overview

Emdash is a local-first, cross-platform Electron app for running multiple AI coding agents in parallel. Each task is isolated in its own Git worktree and can run locally or over SSH, while the desktop app coordinates provider CLIs, ACP chat sessions, terminal sessions, issue and PR integrations, diff review, and release packaging.

Repository Structure

This is a pnpm workspace monorepo. The Electron app lives in apps/emdash-desktop/ as @emdash/emdash-desktop; shared packages live under packages/. Unless a path is prefixed with packages/ or another app, app paths such as src/..., drizzle/, scripts/, and build/ are relative to apps/emdash-desktop/.

Repo root:

  • .claude/ - Local Claude agent settings for this checkout.
  • .github/ - GitHub issue templates, reusable actions, CI, and release workflows.
  • agents/ - Agent-facing architecture, workflow, convention, integration, and risk docs.
  • apps/emdash-desktop/ - The Electron desktop app.
  • apps/workspace-server/ - Remote workspace server and its Docker-based dev stack.
  • packages/chat-ui/ - Shared transcript and ACP chat renderer with Storybook coverage.
  • packages/core/ - Transport-agnostic runtime primitives, including ACP session logic.
  • packages/plugins/ - Agent provider plugin definitions, hooks, and ACP adapters.
  • packages/shared/ - Shared primitives such as result types, logging, and markdown helpers.
  • packages/theme/ - Theme token codegen that emits the generated theme CSS.
  • packages/ui/ - Shared React UI components, theme tokens, recipes, and primitives.
  • packages/wire/ - Typed wire protocol contracts shared by app and workspace server.
  • pnpm-workspace.yaml - Workspace package globs for apps/* and packages/**.
  • Root config files - package.json, nx.json, .nvmrc, .oxfmtrc.json, .oxlintrc.json, and lockfile/configuration owned at the workspace root.

Inside apps/emdash-desktop/:

  • build/ - Electron packaging assets; avoid edits unless working on packaging/signing.
  • drizzle/ - Generated Drizzle SQL migrations and metadata.
  • scripts/ - Release, verification, and build support scripts.
  • src/main/ - Electron main process: bootstrap, Wire gateway, DB, and host services.
  • src/entry/ - Electron entry points: main.ts (main process) and preload.ts, the typed preload bridge exposed to the renderer.
  • src/renderer/ - React composition shell, shared browser infrastructure, and tests.
  • src/core/ - Vertical slices with portable APIs, Node implementations, browser UI, and manifests.
  • src/types/ - Ambient and cross-cutting TypeScript declarations.
  • tooling/ - App-level development and test infrastructure not bundled into production.

Read the full file on GitHub · 420 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. yesterday First seen · 420 lines · 5,643 tokens per session scan A 75df1adfbc3c

Subscribe to this mod's changes

emdash AGENTS.md is an instructions file published in the GitHub repository generalaction/emdash (5,548 stars, last pushed yesterday), licensed Apache-2.0. It adds 5,643 tokens to every session, about $0.0282 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.