Migrate from OpenAI to Anthropic

SkillAI & models

"Migrate from OpenAI/GPT to Anthropic/Claude \u2014 API differences,\n\

Use Migrate from OpenAI to Anthropic in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add Migrate from OpenAI to Anthropic and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the Migrate from OpenAI to Anthropic skill

Details

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Migrate from OpenAI to AnthropicStart free

What this skill tells your AI

The instructions your AI receives, as published by jeremylongshore/tons-of-skills-marketplace in skills/.curated/clade-migration-deep-dive/SKILL.md and read by ahel’s review.

Overview

Migrate from OpenAI/GPT to Anthropic/Claude. Covers the complete API mapping (endpoints, models, response shapes), SDK swap with before/after code, five key differences (max_tokens required, system as top-level param, alternating messages, response path, streaming events), and tool use migration.

API Mapping

OpenAIAnthropicNotes
openai.chat.completions.create()anthropic.messages.create()Different request/response shape
model: 'gpt-4o'model: 'claude-sonnet-4-20250514'Different model IDs
response.choices[0].message.contentresponse.content[0].textDifferent response path
system in messages arraysystem as separate parameterClaude uses top-level system
response_format: { type: 'json_object' }System prompt: "Respond in JSON only"No native JSON mode
tools / function_callingtools (similar but different schema)Input schema differences
openai.embeddings.create()N/A — use Voyage or CohereNo embeddings API

SDK Swap

Instructions

Step 1: Before (OpenAI)

import OpenAI from 'openai';
const openai = new OpenAI();

const response = await openai.chat.completions.create({
  model: 'gpt-4o',
  messages: [
    { role: 'system', content: 'You are helpful.' },
    { role: 'user', content: 'Hello' },
  ],
});
console.log(response.choices[0].message.content);

Step 2: After (Anthropic)

import Anthropic from '@claude-ai/sdk';
const anthropic = new Anthropic();

const response = await anthropic.messages.create({
  model: 'claude-sonnet-4-20250514',
  max_tokens: 1024, // Required (not optional like OpenAI)
  system: 'You are helpful.', // Separate from messages
  messages: [
    { role: 'user', content: 'Hello' },
  ],
});
console.log(response.content[0].text);

Key Differences

  1. max_tokens is required — OpenAI defaults it, Anthropic requires it
  2. system is a top-level param — not a message in the array
  3. First message must be user — can't start with assistant
  4. Messages must alternate — no two user or two assistant messages in a row
  5. Response shape — content[0].text not choices[0].message.content
  6. Streaming events — different event types and structure

Tool Use Migration

// OpenAI tool definition
{ type: 'function', function: { name: 'get_weather', parameters: { ... } } }

// Anthropic tool definition
{ name: 'get_weather', input_schema: { ... } }  // Flatter structure

Grep & Replace

# Find all OpenAI imports
grep -rn "from 'openai'" --include="*.ts" .
grep -rn "import OpenAI" --include="*.ts" .

# Find response access patterns to update
grep -rn "choices\[0\]" --include="*.ts" .
grep -rn "message.content" --include="*.ts" .  # May need updating

Output

  • All openai imports replaced with @claude-ai/sdk
  • Response access patterns updated (choices[0].message.content → content[0].text)
  • System prompts moved from messages array to top-level system parameter
  • max_tokens added to all API calls (required, not optional)
  • Tool definitions restructured to Anthropic format

Error Handling

ErrorCauseSolution
API ErrorCheck error type and status codeSee clade-common-errors

Examples

See API Mapping table, Before/After SDK code, Key Differences list, Tool Use Migration, and Grep & Replace commands above.

Resources

Next Steps

See clade-sdk-patterns for production Anthropic SDK patterns.

Prerequisites

  • Existing OpenAI integration to migrate
  • Access to codebase with search capability
  • Test suite for comparing outputs between providers

Signals

GitHub stars
3k
Forks
415
Last commit
Oct 2026
Advanced
Item type
skill
Key
clade-migration-deep-dive
Source
github.com/jeremylongshore/tons-of-skills-marketplace