sofos-code AGENTS.md

A project guide for Sofos, a terminal-based AI coding assistant written in Rust. It describes the assistant’s architecture, security boundaries, session storage, and tool-calling approach.

In plain words
What is it for?
Use it when developing or reviewing Sofos’s Rust code, REPL, session history, tools, or security behavior. It helps agents understand how API messages differ from messages shown in the interface.
Why use it?
It gives coding agents the project context needed to make changes that fit Sofos’s design. It also explains that file access and shell commands are restricted to the workspace by default.

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

Made for: Codex, OpenCode.

Per session 4,921 This file is loaded in full into every session.
When invoked 4,921 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.04921 $0.04921
Opus 5 $0.02461 $0.02461
Sonnet 5 $0.00984 $0.00984
Haiku 4.5 $0.00492 $0.00492

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

Security

Grade A, and why

sofos-code 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 · 477 lines

How it starts

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

Sofos – AI Coding Assistant Project Context

Project Overview

Sofos is a terminal-based AI coding assistant powered by Anthropic's Claude API. It's built in Rust for maximum performance and security. The assistant can read/write files, search code, execute bash commands, and search the web - within the workspace by default, with interactive permission prompts for external paths.

Core Philosophy:

  • Security first: Workspace-sandboxed by default, with interactive user-approved access to external paths via three independent scopes (Read, Write, Bash)
  • Fast and efficient: Native Rust implementation with optional ultra-fast editing via Morph API
  • Developer-friendly: Interactive REPL with session persistence and custom instructions
  • Transparent: All tool executions are visible to the user

Architecture

Key Design Decisions

  1. Dual Session Storage Format (src/session/history.rs)

    • api_messages: Anthropic API format for continuing conversations
    • display_messages: UI-friendly format for showing conversation history
    • This separation ensures Claude sees proper API format while users see original UI
  2. Tool Calling Pattern (src/repl/mod.rs)

    • Assistant returns content blocks (text + tool_use)
    • REPL executes tools and collects results
    • Results sent back as user message with tool_result blocks
    • Loop-based handling allows Claude to use multiple tools in sequence iteratively
  3. Two-Level Instructions (src/session/history.rs)

    • AGENTS.md: Project-level, version controlled
    • .sofos/instructions.md: Personal, gitignored
    • Both appended to system prompt at startup
  4. Sandboxing Strategy (src/tools/filesystem.rs, src/tools/bashexec.rs)

    • All paths validated before operations
    • Parent directory traversal blocked (..)
    • Absolute paths rejected
    • Symlinks checked to prevent escape
    • Bash commands filtered through blocklist

Code Organization

Directory Structure

src/
├── main.rs              # Entry point
├── cli.rs               # CLI argument parsing
├── error.rs             # Error types
├── error_ext.rs         # Error extensions
├── config.rs            # Configuration (SofosConfig, ModelConfig)
│
├── api/                 # API clients
│   ├── anthropic.rs     # Claude API client
│   ├── openai.rs        # OpenAI API client
│   ├── morph.rs         # Morph Apply API client
│   ├── types.rs         # Message types and serialization
│   └── utils.rs         # API utilities
│
├── mcp/                 # MCP (Model Context Protocol) integration
│   ├── mod.rs           # MCP module exports
│   ├── config.rs        # MCP server configuration loading
│   ├── protocol.rs      # MCP protocol types (JSON-RPC, tools)
│   ├── client.rs        # MCP client implementations (stdio, HTTP)
│   └── manager.rs       # MCP server connection management
│
├── repl/                # REPL components
│   ├── mod.rs           # Main REPL loop and Repl struct
│   ├── clipboard_edit_mode.rs # Custom EditMode wrapping Emacs to intercept Ctrl+V
│   ├── conversation.rs  # Message history management
│   ├── prompt.rs        # Prompt rendering
│   ├── request_builder.rs   # API request construction
│   └── response_handler.rs  # Response processing
│
├── session/             # Session management
│   ├── history.rs       # Session persistence + custom instructions
│   ├── state.rs         # Runtime session state
│   └── selector.rs      # Session selection TUI
│
├── clipboard.rs         # Clipboard image paste (Ctrl+V) with numbered markers
│
├── tools/               # Tool implementations
│   ├── filesystem.rs    # File operations (read, write, list, etc)
│   ├── bashexec.rs      # Sandboxed bash execution
│   ├── codesearch.rs    # Ripgrep integration
│   ├── image.rs         # Image handling (local paths, URLs)
│   ├── plan.rs          # Task-plan validation and terminal rendering
│   ├── permissions.rs   # 3-tier command permission system
│   ├── tool_name.rs     # Type-safe tool name enum
│   ├── types.rs         # Tool definitions for API
│   └── utils.rs         # Tool utilities (confirmations, HTML-to-text)
│
├── ui/                  # UI components
│   ├── mod.rs           # Main UI utilities and display logic
│   ├── syntax.rs        # Markdown/code syntax highlighting
│   └── diff.rs          # Contextual diff generation and display
│
└── commands/            # Built-in commands
    └── builtin.rs       # Command implementations

Read the full file on GitHub · 477 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 · 477 lines · 4,921 tokens per session scan A 5fca77092b97

Subscribe to this mod's changes

sofos-code AGENTS.md is an instructions file published in the GitHub repository alexylon/sofos-code (10 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 4,921 tokens to every session, about $0.0246 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-31.