Automated summary
This skill embeds claude-sub-proxy as an internal service within an existing project, running on localhost with no external exposure.
Strengths
- Minimal footprint: only 4 JS files plus configuration
- Secure by default: listens only on localhost
- Multiple integration options (copy, submodule, programmatic start)
- No extra proxy API key needed for internal communication
Limitations
- Text-only mode by default (no image or tool support)
- Requires Claude Code CLI to be authenticated
- Manual background process management
When you need to add Claude API access inside a larger application without deploying a separate server or exposing an external endpoint.
If you need multimodal features (images), a public-facing proxy with API key, or prefer a standalone server solution.
Security analysis
SafeThe skill provides a setup guide for embedding a local proxy. It only instructs reading local credentials, copying files, installing npm packages, and starting a local server. No destructive commands, external exfiltration, or obfuscated payloads.
No concerns found
How this analysis is madeExamples
Embed claude-sub-proxy as an internal service in my project so I can call Claude API without a separate server.Integrate claude-sub-proxy into my existing app as a library/internal service running on localhost.I want to add Claude API access to my Node.js application without setting up a separate proxy server. Can you embed claude-sub-proxy into my project?Skill: setup-embedded
Description
Embed claude-sub-proxy as an internal service within another project. Minimal footprint — 4 JS files + config, running on localhost with no external exposure.
Trigger
Trigger this skill when the user wants to:
- Embed the proxy inside another project
- Use claude-sub-proxy as a library/internal service
- Add Claude API access to an existing app without a separate server
- "Integrate claude-sub-proxy into my project"
Setup Guide
Step 1: Verify Claude Code CLI
Check that credentials exist:
cat ~/.claude/.credentials.json
# Should contain claudeAiOauth.accessToken
If not authenticated, run claude to log in.
Step 2: Choose Integration Method
Option A — Copy source files (recommended):
# From the claude-sub-proxy repo, copy these files into your project:
mkdir -p your-project/claude-proxy
cp src/server.js src/claude-executor.js src/format-bridge.js src/logger.js src/config.txt your-project/claude-proxy/
Option B — Git submodule:
git submodule add <repo-url> claude-proxy
Step 3: Install Dependency
npm install @anthropic-ai/claude-agent-sdk
Step 4: Configure via Environment Variables
For embedded use, set these environment variables in your app's startup:
| Variable | Recommended Value | Description |
|----------|------------------|-------------|
| CSP_PORT | 42069 (or any free port) | Proxy listening port |
| CSP_HOST | 127.0.0.1 | Localhost only — no external exposure |
| CSP_LOG_LEVEL | WARN | Quiet logging for embedded use |
No CSP_PROXY_API_KEY needed — the proxy runs on localhost as an internal service.
Step 5: Start the Proxy
Option A — Background process in your start script:
// package.json
{
"scripts": {
"start": "concurrently \"node claude-proxy/server.js\" \"your-app-start-command\""
}
}
npm install concurrently --save-dev
Option B — Programmatic start:
import { startServer } from './claude-proxy/server.js';
startServer();
Option C — PM2:
pm2 start claude-proxy/server.js --name claude-proxy
Step 6: Connect from Your App
Node.js:
const response = await fetch('http://127.0.0.1:42069/v1/messages', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
model: 'claude-sonnet-4-6',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Hello!' }]
})
});
const data = await response.json();
Python:
import anthropic
client = anthropic.Anthropic(
base_url="http://127.0.0.1:42069",
api_key="not-needed"
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello!"}]
)
curl:
curl -X POST http://127.0.0.1:42069/v1/messages \
-H "Content-Type: application/json" \
-d '{"model":"claude-sonnet-4-6","max_tokens":256,"messages":[{"role":"user","content":"Hello"}]}'
Step 7: Verify
# Health check
curl -s http://127.0.0.1:42069/health
# → {"status":"ok","server":"claude-sub-proxy","timestamp":...}
# Auth check
curl -s http://127.0.0.1:42069/auth/status
# → {"authenticated":true,"source":"claude_credentials","expires_at":"..."}
Key Points
- Localhost only — default
CSP_HOST=127.0.0.1, no external exposure - Text-only mode —
tools: []by default, pure API proxy - No proxy_api_key needed — inter-process communication on localhost is trusted
- Minimal footprint — 4 JS files + 1 config file + 1 npm dependency
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/embed-claude-sub-proxy-as-internal-service-mma3jr3x/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/embed-claude-sub-proxy-as-internal-service-mma3jr3x' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/embed-claude-sub-proxy-as-internal-service-mma3jr3x/download' --output '.skill-downloads/embed-claude-sub-proxy-as-internal-service-mma3jr3x/SKILL.md.part' && mv '.skill-downloads/embed-claude-sub-proxy-as-internal-service-mma3jr3x/SKILL.md.part' '.skill-downloads/embed-claude-sub-proxy-as-internal-service-mma3jr3x/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.
Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/embed-claude-sub-proxy-as-internal-service-mma3jr3x/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
React Hook Form Best Practices
Development
Master React Hook Form: avoid anti-patterns, manage subscriptions, and handle reset, dirty state, and controlled inputs correctly.
Emotion to Mantine Migration
Development
Migrate Emotion styled-components to Mantine components with style props and CSS modules. Use when converting .styled.tsx files or removing @emotion imports.
Scope Creep Detector
Development
Analyzes git diffs against a stated intent to detect scope creep, unrelated files, broad PRs, and oversized changes, then suggests keep, split, or justify actions.