seokhoonj

Thinchat — AI skill for Claude Code

AI community

A thin, unified client for four LLM providers: claude, openai, gemini, ollama.

How to install Thinchat

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

What Thinchat does

A thin, unified client for four LLM providers: claude, openai, gemini, ollama.

Alternatives in AI

  • Opencodex — Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama… 12.3k ★
  • Zen MCP Server — The power of Claude Code + Gemini / OpenAI / Grok / OpenRouter / Ollama / Custom Model working as one 11.3k ★
  • Debate — AI Debate Hub - Structured four-way debates between Claude, Sonnet, Gemini, and Codex 2.8k ★

README

thinchat

[![check](https://github.com/seokhoonj/thinchat/actions/workflows/check.yml/badge.svg)](https://github.com/seokhoonj/thinchat/actions/workflows/check.yml) [![PyPI](https://img.shields.io/pypi/v/thinchat)](https://pypi.org/project/thinchat/) [![Python](https://img.shields.io/pypi/pyversions/thinchat)](https://pypi.org/project/thinchat/) [![License](https://img.shields.io/pypi/l/thinchat)](https://github.com/seokhoonj/thinchat/blob/main/LICENSE)

**English** | [한국어](README.ko.md)

One interface for four LLM providers — **claude, openai, gemini, ollama** — that treats **not leaking your API key** as part of the job.

Name a provider, then call it: completion (whole, streamed, or JSON-structured) and, where the provider has one, embeddings — each with an async twin, over the openai and anthropic SDKs. No gateway, no router, no cost tracking — just the calls, plus the parts you'd otherwise hand-roll:

  • Leak-safe keys. Your key is a credbox Secret (masked in logs and tracebacks), revealed only at the SDK call. On a failure, thinchat severs the SDK error's chain and scrubs the message so the key never rides out on a traceback — and it pins each provider's official endpoint, so an environment variable can't redirect a resolved key to another host.
  • One shared credential store. thinchat set claude saves a key once to a 0600 store that every session — and every sibling tool — resolves from; or just use _API_KEY from the environment (the library core reads no file unless you ask).
  • The fiddly bits, handled. Structured output parses tolerant JSON into a dict; embeddings return one alignment-checked vector per input; RateLimitError carries retry_after; supports() reports a provider's capabilities before you call.

1. Install

pip install thinchat

Requires Python 3.11+. Both provider SDKs (openai and anthropic) come with it, so every provider works out of the box; each is imported lazily the first time y