morph-apply
npx machina-cli add skill parcadei/Continuous-Claude-v3/morph-apply --openclawMorph Fast Apply
Fast, AI-powered file editing using the Morph Apply API. Edit files without reading them first. Processes at 10,500 tokens/sec with 98% accuracy.
When to Use
- Fast file edits without reading entire file first
- Batch edits to a file (multiple changes in one operation)
- When you know what to change but file is large
- Large files where reading would consume too many tokens
Key Pattern: Code Markers
Use // ... existing code ... (or language-appropriate comments) to mark where edits go:
# ... existing code ...
try:
result = process()
except Exception as e:
log.error(e)
# ... existing code ...
The API intelligently places your edit in the right location.
Usage
Add error handling
uv run python -m runtime.harness scripts/mcp/morph_apply.py \
--file "src/auth.py" \
--instruction "Add error handling to login function" \
--code_edit "# ... existing code ...
try:
user = authenticate(credentials)
except AuthError as e:
log.error(f'Auth failed: {e}')
raise
# ... existing code ..."
Add logging
uv run python -m runtime.harness scripts/mcp/morph_apply.py \
--file "src/api.py" \
--instruction "Add debug logging" \
--code_edit "# ... existing code ...
logger.debug(f'Processing request: {request.id}')
# ... existing code ..."
TypeScript example
uv run python -m runtime.harness scripts/mcp/morph_apply.py \
--file "src/types.ts" \
--instruction "Add user validation" \
--code_edit "// ... existing code ...
if (!user) throw new Error('User not found');
if (!user.isActive) throw new Error('User inactive');
// ... existing code ..."
Parameters
| Parameter | Description |
|---|---|
--file | File path to edit (required) |
--instruction | Human description of the change (required) |
--code_edit | Code snippet with markers showing where to place edit (required) |
vs Claude's Edit Tool
| Tool | Best For |
|---|---|
| morph-apply | Fast edits, don't need to read file first, large files, batch edits |
| Claude Edit | Small precise edits when file is already in context |
Use morph-apply when:
- File is not in context and reading it would be expensive
- File is very large (>500 lines)
- Making multiple related edits at once
- You know the context of the change (function name, class, etc.)
Use Claude Edit when:
- File is already in context from prior Read
- Very precise edits requiring exact old/new string matching
- Small files (<200 lines)
MCP Server Required
Requires morph server in mcp_config.json with MORPH_API_KEY.
Performance
- Speed: 10,500 tokens/sec
- Accuracy: 98% correct placement
- Token savings: Don't need to read entire file first
Source
git clone https://github.com/parcadei/Continuous-Claude-v3/blob/main/.claude/skills/morph-apply/SKILL.mdView on GitHub Overview
Morph Fast Apply enables AI-powered, rapid edits directly in large files without reading the entire file first. It processes edits at 10,500 tokens/sec with 98% accuracy, making bulk changes faster and more reliable.
How This Skill Works
You provide a target file, a human instruction, and a code_edit block marked with // ... existing code ... markers. The Morph Apply API uses those markers to anchor the edit and insert changes at the correct location, without requiring a full file read. This supports multi-edit batches and cross-language marking through language-appropriate comments.
When to Use It
- Fast edits without reading the entire file first
- Batch edits to a file (multiple changes in one operation)
- You know what to change but the file is very large
- Editing large files where reading would consume too many tokens
- Need edits placed in the correct location automatically without manual search
Quick Start
- Step 1: Prepare your --file, --instruction, and a --code_edit block with // ... existing code ... markers
- Step 2: Run the morph-apply harness, e.g. uv run python -m runtime.harness scripts/mcp/morph_apply.py --file "<path>" --instruction "<description>" --code_edit "<markers>"
- Step 3: Review the diff, run tests, and commit the changes
Best Practices
- Use code markers like // ... existing code ... or equivalent language comments to indicate insertion points
- Write a precise, outcome-focused --instruction describing the exact change
- Include enough surrounding code context in --code_edit around the markers
- Group related edits into a single morph-apply run for large or batch changes
- Configure the Morph server in mcp_config.json with MORPH_API_KEY to enable access
Example Use Cases
- Python: Add error handling to login function in src/auth.py
- Python: Add debug logging to API request handling in src/api.py
- TypeScript: Add user validation checks in src/types.ts
- Python: Wrap login flow with try/except for resilience in src/auth.py
- TypeScript: Add input validation guards in src/main.ts