rianprei

Claude Nim — Development skill for Claude Code

Development community

Proxy Anthropic Messages API para Claude Code: modelos NVIDIA NIM + passthrough Anthropic real.

How to install Claude Nim

This entry records only its repository, not the path inside it, so there is no exact command to give. Open rianprei/claude-nim and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Claude Nim does

Proxy Anthropic Messages API para Claude Code: modelos NVIDIA NIM + passthrough Anthropic real. Binário Rust único ~2MB, streaming SSE, tool calling, thinking nativo, fallback com circuit breaker.

Alternatives in Development

  • Param Discover — Discover hidden HTTP parameters on a URL or list of URLs using Arjun (or x8 fallback) 4.5k ★
  • Crypto Research Command — Think hard and execute comprehensive cryptocurrency research by calling all crypto analysis agents in parallel 3.4k ★
  • Dive — Dive is an open-source MCP Host Desktop Application that seamlessly integrates with any LLMs supporting functi 1.8k ★

README

claude-nim

Proxy Anthropic Messages API para **[Claude Code](https://claude.com/claude-code)** que entrega modelos **NVIDIA NIM** com a mesma experiência dos modelos Claude nativos — e ao mesmo tempo faz **passthrough real** para `api.anthropic.com` na mesma sessão.

Claude Code
    │  POST /v1/messages  (stream SSE, tools, thinking)
    ▼
claude-nim (binário único ~2 MB, RSS ~15 MB)
    ├── claude-nvidia-* / nvidia-*   →  traduz ↔ OpenAI Chat Completions → integrate.api.nvidia.com
    └── claude-* / outro modelo      →  passthrough SSE → api.anthropic.com (seu token)

Por que existe

O `litellm` + Python usava **983 MB de RAM** em idle. Este proxy faz o mesmo trabalho (tradução de protocolo) com **um binário Rust de 2 MB e ~15 MB sob carga**, sem runtime, sem venv, sem deps.

Features

  • Streaming SSE bidirecional — message_start → content_block_delta → message_stop, índice de blocos alinhado
  • Tool calling nativo — tools / tool_use / tool_result / tool_choice mapeados 1:1; tool_calls intercalados viram blocos separados sem duplicar
  • Thinking nativo — reasoning_content do NIM vira content_block tipo thinking + thinking_delta (renderiza colapsado, igual ao Claude real)
  • Fallback em cadeia com circuit breaker — 2 passagens; modelos que respondem 429/5xx entram em cooldown de 60s e são pulados
  • Keepalive SSE — event: ping a cada 5s de silêncio do upstream (modelos de reasoning pensam em silêncio)
  • Uso real de tokens — stream_options.include_usage: output_tokens no message_delta vem do usage do NIM, não de estimativa
  • Erros no formato Anthropic — 503 overloaded_error, 401, 400, 413, 404 — sempre {"type":"error","error":{...}}, nunca envelope OpenAI cru
  • Falha honesta em stream — upstream truncado/reset emite event: error, não message_stop falso
  • HTTP robusto — hyper 1.x (HTTP/1.1, chunked request bodies, keep-alive), rustls (sem OpenSSL), timeout de conexão, limite de bo