Skip to main content

Fast Apply

Fast Apply takes original code and an edit snippet and merges them. 10,500 tokens/sec, 98% accuracy. It’s the same concept Cursor uses for instant apply. The alternative is search-and-replace, which requires a separate tool call for each edit chunk and fails on whitespace, reordering, and ambiguous matches. Or full-file rewrites, which are slow and expensive. Fast Apply handles all edits to a file in a single call. The speed comes from a 7B model trained specifically on code merging, served on custom CUDA kernels with speculative decoding that exploits code’s syntactic predictability (70% hit rate).

Try the API Playground

Test Fast Apply with live examples

Models

ModelSpeedAccuracyBest For
morph-v3-fast10,500+ tok/sec96%Real-time edits
morph-v3-large2500+ tok/sec98%Complex multi-edit changes
autoVariable~98%Automatic selection

Quick Start

1

Setup Client

Python
from openai import OpenAI

client = OpenAI(
    api_key="your-morph-api-key",
    base_url="https://api.morphllm.com/v1"
)
2

Apply Changes

Python
def apply_edit(instruction: str, original: str, update: str):
    response = client.chat.completions.create(
        model="morph-v3-fast",
        messages=[{
            "role": "user",
            "content": f"<instruction>{instruction}</instruction>\n<code>{original}</code>\n<update>{update}</update>"
        }]
    )
    return response.choices[0].message.content

# Example
original = """
const a = 1
const authenticateUser = () => {
  return "Authenticated"
}
"""
# These should be coming from your Agent
instruction = "I will change the return text to be French"
update = """
// ... existing code ...
  return "Authentifié"
}
"""

final_code = apply_edit(instruction, original, update)

Best Practices

Update Snippets: Use // ... existing code ... for unchanged sections:
// Good
const authenticateUser = async (email, password) => {
  // ... existing code ...
  const result = await verifyUser(email, password)
  return result ? "Authenticated" : "Unauthenticated"
}
Instructions: Have the agent write clear, first-person descriptions to “disambiguate uncertainty in the edit”:
  • ✅ “I will add async/await error handling”
  • ❌ “Change this function”

Next Steps

API Reference

Complete technical reference and error handling

Build AI Tools

Integration guide for AI agents