Skills › Software Development › Dev workflow & Git
Morph Apply
Fast file editing via Morph Apply API (10,500 tokens/sec, 98% accuracy)
Tools: bash,read
The full skill
—
name: morph-apply
description: Fast file editing via Morph Apply API (10,500 tokens/sec, 98% accuracy)
allowed-tools: [Bash, Read]
—
# Morph 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:
“`python
# … 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
“`bash
uv run python -m runtime.harness scripts/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
“`bash
uv run python -m runtime.harness scripts/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
“`bash
uv run python -m runtime.harness scripts/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