Skip to main content

The communication layer for AI agents. Route context between repos, devices, and tools.

Project description

writ

Better instructions. Connected agents.

PyPI License: MIT Python 3.11+ Tests

The quality and communication layer for AI coding agents. Lint your instructions, compose context across tools, and connect agents across repos and devices.

pip install enwrit
writ lint CLAUDE.md               # Instant quality score (0-100) for any instruction
writ init --template fullstack    # Bootstrap agent team in your repo
writ use architect                # Compose + write to your IDE's native files

Try the live lint demo -- paste any instruction, get an instant quality score. Or browse 50+ instructions on the Hub.


Lint Your Instructions

97% of AI instructions have quality defects. writ lint catches them.

writ lint .cursor/rules/my-rule.mdc
# Score: 34 / 100 (D)
# - 6 instances of vague language ("try to", "consider", "if possible")
# - No verification commands (agents can't check their own work)
# - No code examples
# Suggestions:
#   Replace vague phrases with imperative commands
#   Add backtick-wrapped test/build/lint commands (2-3x quality impact)
#   Add 1-3 code examples showing desired patterns

Scores 0-100 across 6 dimensions: Clarity, Verification, Coverage, Brevity, Structure, Examples. Works on any .md, .mdc, .txt, or YAML instruction file -- no writ init required.

writ lint CLAUDE.md                     # Score any file (ML-powered, local, free)
writ lint my-agent                      # Score a managed instruction
writ lint AGENTS.md --deep              # AI-powered analysis (Gemini, via enwrit.com)
writ lint AGENTS.md --deep-local        # Local AI analysis (writ-lint-0.8B, GPU-accelerated)
writ lint rules.mdc --json              # Machine-readable output for CI
writ lint --ci --min-score 60           # Exit 1 if score too low (CI gate)

Try it in your browser -- paste any instruction, get an instant score.


30-Second Quickstart

# 1. Install
pip install enwrit

# 2. Initialize in any repo (auto-detects your stack)
writ init

# 3. Install a pre-built instruction from the Hub
writ install verification-loop
writ install code-review-agent

# 4. Activate -- writes to your IDE's native files
writ use verification-loop
writ use code-review-agent

That's it. Your IDE now has battle-tested instructions -- no copy-paste, no manual conversion.

What Makes writ Different

Capability What it means
Instruction linting 6-dimension quality scoring (0-100) for any AI instruction file. Code-based + AI-powered.
Context composition Layer project + team + agent + handoff context into one coherent instruction set
9 output formats Write once, export to Cursor .mdc, CLAUDE.md, AGENTS.md, Copilot, Windsurf, Codex, Kiro, Agent Cards
Agent communication Structured conversations between agents across repos and devices
Personal library + cloud sync writ savewrit load on any device. Your agents follow you.
Hub with 50+ instructions Rules, agents, and autonomous programs. writ install <name>
MCP server One line in your config and any agent can search/install from the Hub

How It Works

writ writes to native IDE files -- it does NOT call LLM APIs.

Tool writ writes to
Cursor .cursor/rules/writ-*.mdc
Claude Code CLAUDE.md
AGENTS.md AGENTS.md
GitHub Copilot .github/copilot-instructions.md
Windsurf .windsurfrules
Codex / Kiro AGENTS.md

When you run writ use reviewer, the tool composes all relevant context and writes it directly into the files your IDE already reads.

Context Composition

The core innovation. Each agent's context is composed from 4 layers:

Layer 4: Handoff context      ← Output from another agent
Layer 3: Agent's instructions  ← The agent's own role
Layer 2: Inherited context     ← From parent agents
Layer 1: Project context       ← Auto-detected (languages, frameworks, structure)
writ use implementer --with architect    # Compose with architect's context
writ compose reviewer --with architect   # Preview before writing

MCP Server (One-Line Setup)

Give any MCP-compatible agent access to the Hub -- no CLI needed:

{
  "mcpServers": {
    "writ": {
      "command": "uvx",
      "args": ["enwrit", "mcp", "serve"]
    }
  }
}

This exposes 22 tools: search the Hub, install instructions, compose context, read files, start agent conversations, and more. Run writ mcp serve --help for the full list.

Hub: Browse & Install

The enwrit Hub has 50+ curated instructions across three tiers:

  • Rules -- passive context that shapes agent behavior (verification loops, commit hygiene, no-secrets)
  • Agents -- on-invocation workers (code review, git commit, documentation, security audit)
  • Programs -- autonomous metric-driven loops (test coverage optimizer, dependency freshness, dead code eliminator)
writ search "code review"          # Search from CLI
writ install code-review-agent     # Install into your project
writ use code-review-agent         # Activate in your IDE

Templates

Bootstrap an agent team in seconds:

writ init --template fullstack     # Architect + implementer + reviewer + tester
writ init --template python        # Python developer + reviewer
writ init --template typescript    # TypeScript developer + reviewer
writ init --template rules         # Project rule + coding standards

Personal Library & Cloud Sync

writ save my-reviewer              # Save to library (local + cloud)
writ login                         # Authenticate for cross-device sync
writ load my-reviewer              # Load on any machine
writ library                       # See everything (local + remote)

Cross-Project Memory

writ memory export research-insights     # Export from current project
writ memory import research-insights     # Import in another project

Agent-to-Agent Communication

Agents can have structured conversations across repos:

writ peers add partner-repo --path ../partner-repo
writ chat start --with partner-repo --goal "Review API design"
writ chat send <conv-id> "Here's my proposed schema..."
writ inbox                          # Check for responses

All Commands

Command Description
writ init Initialize in current repo
writ add <name> Create instruction (agent, rule, context, program)
writ add --file <path> Import markdown file(s) or directory
writ list List all instructions
writ use <name> Activate (compose + write to IDE files)
writ edit <name> Open in $EDITOR
writ remove <name> Remove instruction
writ export <name> <format> Export to specific format
writ compose <name> Preview composed context
writ save / load Personal library (local + cloud)
writ library List personal library
writ search <query> Search Hub
writ install <name> Install from Hub
writ publish / unpublish Make publicly discoverable
writ login / logout Authenticate with enwrit.com
writ register Create account
writ lint [file|name] [--deep] [--deep-local] [--stop-server] Quality score (0-100, 6 dimensions)
writ sync Bulk bidirectional library sync
writ mcp serve Start MCP server (22 tools)
writ chat start/send/inbox Agent-to-agent conversations
writ memory export/import Cross-project memory
writ handoff create Create agent handoff
writ review <name> Browse/submit reviews
writ threads Knowledge threads

Instruction Format

Instructions are YAML files in .writ/, routed by task_type:

name: reviewer
description: "Code reviewer for TypeScript"
version: 1.0.0
task_type: agent    # agent | rule | context | program | template
tags: [typescript, review]
instructions: |
  You are a code reviewer specializing in TypeScript.
  Focus on: type safety, component composition, performance.
composition:
  inherits_from: [architect]
  project_context: true

Users interact primarily with markdown. Use writ add --file to import .md, .mdc, or .txt files directly.

Development

git clone https://github.com/enwrit/writ.git
cd writ
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -e ".[dev]"
pytest                    # 385 tests
ruff check src/ tests/

License

MIT

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

enwrit-0.4.7.tar.gz (7.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

enwrit-0.4.7-py3-none-any.whl (7.7 MB view details)

Uploaded Python 3

File details

Details for the file enwrit-0.4.7.tar.gz.

File metadata

  • Download URL: enwrit-0.4.7.tar.gz
  • Upload date:
  • Size: 7.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for enwrit-0.4.7.tar.gz
Algorithm Hash digest
SHA256 f52fc239aaaf2a27f1f2a1fedc14f48ff4eb334a0a7d8cc61f4e48228d4c9809
MD5 9c1b45c44dce6649e94f02be2bf1f30e
BLAKE2b-256 baccf8eb496eadf67452a28b8df3f5af087614edd7a95690c59dd979875079d6

See more details on using hashes here.

Provenance

The following attestation bundles were made for enwrit-0.4.7.tar.gz:

Publisher: publish.yml on enwrit/writ

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file enwrit-0.4.7-py3-none-any.whl.

File metadata

  • Download URL: enwrit-0.4.7-py3-none-any.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for enwrit-0.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 b73c270101523a08c67f1efef6d9d82f5448cda4958a57868fdd07702f946bdb
MD5 607ab1e2f86fc89c88f69ac598860f2d
BLAKE2b-256 6bf2def278aa14c495e9cc591a0b73d330d73e319a12ecfd3586dcdb6bc64e7e

See more details on using hashes here.

Provenance

The following attestation bundles were made for enwrit-0.4.7-py3-none-any.whl:

Publisher: publish.yml on enwrit/writ

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page