locode AGENTS.md

A set of coding instructions for Locode, a TypeScript and Node.js command-line tool that routes tasks between a local Ollama model and Claude. It explains the project structure, development rules, and testing approach.

In plain words
What is it for?
Making changes to Locode’s orchestrator, model router, agents, tools, configuration, setup wizard, and tests.
Why use it?
It helps agents understand where Locode routes tasks, tracks usage, stores configuration, and applies its safety rules.

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

Made for: Codex, OpenCode.

Per session 928 This file is loaded in full into every session.
When invoked 928 The same file — it is already loaded in full.
Security scan A 1 finding. 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.00928 $0.00928
Opus 5 $0.00464 $0.00464
Sonnet 5 $0.00186 $0.00186
Haiku 4.5 $0.00093 $0.00093

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

Security

Grade A, and why

locode AGENTS.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 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.

Runs shell commandslowCapability

Expected in a hook, worth knowing in a rule or an instructions file.

- `src/tools/git.ts` uses `execFileSync` (not `execSync`) to prevent shell injection
AGENTS.md · 76 lines

How it starts

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

Locode — Agent Guidelines

This file describes how AI agents (Claude Code, Locode itself, or any other coding agent) should work within this repository.

Project Overview

Locode is a TypeScript/Node.js CLI that routes coding tasks between a local Ollama LLM and Claude based on task complexity. The core value prop is token cost reduction — simple tasks (grep, file reads, shell) go to the local model; complex tasks (refactoring, code generation) go to Claude.

Architecture

User Input → Orchestrator → Router → LocalAgent (Ollama) or ClaudeAgent (Anthropic SDK)
                                  ↓
                            TokenTracker → session stats

Key files:

  • src/orchestrator/orchestrator.ts — main entry point for task processing
  • src/orchestrator/router.ts — rule-based + LLM fallback routing
  • src/agents/local.ts — Ollama client
  • src/agents/claude.ts — Anthropic SDK client
  • src/tools/ — safe read-only tools (shell allow-list, git allow-list)
  • src/config/schema.ts — Zod config schema (source of truth for config shape)
  • src/cli/setup.ts — first-run wizard, API key storage

Development Rules

Testing

  • Always follow TDD: write failing test → run to confirm → implement → confirm pass
  • Run npm test before every commit — all tests must pass
  • Run npm run build to catch TypeScript errors before committing
  • Never mock real behavior away in tests; mock only external I/O (Ollama, Anthropic API)
  • Tests must call the real function, not reimplement its logic — if a function is hard to test, make it accept parameters (e.g., loadEnvFile(path)) rather than duplicating its internals
  • Mock names must match the actual registry (e.g., use run_command not shell)
  • Assert behavior and outcomes, not implementation details

Security

  • src/tools/shell.ts uses an allow-list (ALLOWED_COMMANDS Set) — do NOT switch to a deny-list
  • src/tools/git.ts uses execFileSync (not execSync) to prevent shell injection
  • API keys are stored in ~/.locode/.env with mode 0600 — never log or expose them
  • Never pass user input directly to shell commands
  • Path containment checks must use path === base || path.startsWith(base + path.sep) — bare startsWith(base) allows sibling-directory traversal
  • Avoid regex patterns with overlapping alternations — CodeQL flags these as backtracking vulnerabilities on every PR

Read the full file on GitHub · 76 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 · 76 lines · 928 tokens per session scan A 5e5a2e36342a

Subscribe to this mod's changes

locode AGENTS.md is an instructions file published in the GitHub repository chocks/locode (23 stars, last pushed 2mo ago), licensed MIT. It adds 928 tokens to every session, about $0.0046 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.