· 1 observation
Technical updates · 1
Package or technical metadata updated
View technical comparison →Hopper v1.3.0
The latest open-source models
From the developer
This plugin doesn't sell products or process payments.
Try the latest open-source LLM on a prompt from my app
Developer declarations; not independently tested. Listing last checked Nov 7, 2026. Package observed Nov 6, 2026.
From the marketplace listing
Hopper is a realtime inference API for open-source models: two LLMs, text-to-speech and speech-to-text, behind a standard chat-completions API. Try the latest open-source models on your own work: in a chat, Hopper runs your prompt or examples on both LLMs side by side and returns each answer with time to first token, tokens per second, token counts and cost, so you can judge the models on your task. It also speaks text with an inline audio player, transcribes recordings you attach (WAV, MP3, M4A, Ogg, FLAC or WebM) with word timestamps, lists models and prices, and returns tested client code for popular SDKs and agent frameworks. After you sign in with your Hopper account, it shows your usage and creates API keys: the key opens once in the Hopper console, with a ready snippet for your code. Where it can run commands in your project, the plugin also finds the prompts your app sends and tests them on both models, and after you say go it points your project's chat-completions client at a Hopper model, changing only the client. Text and audio you send go to Hopper's API; see withhopper.com/privacy.
Language: English · Automatically detected from descriptions.
Exact text from the indicated source. A mention alone does not establish support for your task.
llm inference open-source models api agents model comparison text to speech speech to text tts stt transcription open-source llm latest open-source models chat completions api
· 1 observation
Package or technical metadata updated
View technical comparison →Find competitors to follow as you develop your plugin.
Run EmpirioLabs AI models for chat, media generation, search and agent tasks from ChatGPT.
Shared terms: model, api, audio, keys
Run your Roar AI account from ChatGPT: deploy and manage apps, and manage the AI models, API keys and spend behind them.
Shared terms: model, api, behind, console
Recommends and compares AI models (LLMs) for a task, with list prices, context windows and measured scores in 30 languages. Read-only, no...
Shared terms: model, cost, llms, per
Offline text to speech on your own computer: add local speech to an app, pick a voice, make WAV files from text, clone a voice you have t...
Shared terms: api, command, recording, runs
Ask another AI model a question, or ask two or three at once and see their answers side by side, using your llmwise account.
Shared terms: model, count, second, side
---
name: hopper-integrate
description: 'Points a project''s LLM calls at a Hopper model (DeepSeek V4.1 Flash or Gemma 4 31B) through Hopper''s OpenAI-compatible API: OpenAI SDK (Python or JavaScript), LangChain, Vercel AI SDK, LiteLLM, raw HTTP, LiveKit Agents, Pipecat or Vapi. Gets the project a key, shows the planned change (and, for a voice agent, time to first token on its own prompt), and edits code only after the user says go. Use when the user says "switch this app to DeepSeek on Hopper", "swap the LLM for Gemma 4", "move our OpenAI calls to Hopper", "point base_url at Hopper", "set up Hopper in this project", "add a Hopper API key to this repo" or "go ahead" after a hopper-try comparison. Not for trying or comparing models before deciding (hopper-try), speech or transcription (hopper-speak, hopper-transcribe), or running models locally.'
---
# Use a Hopper model in this project
Hopper serves DeepSeek V4.1 Flash (`deepseek-v4.1-flash`) and Gemma 4 31B (`gemma-4-31b`) behind an OpenAI-compatible API at `https://api.withhopper.com/v1`. Any code that talks to the OpenAI chat-completions API can use them by changing the base URL, the key and the model name.
Run this end to end. The user's only steps are reading the plan, opening one link to keep the key, and saying go before you change their code. Never ask them to sign up, copy keys by hand, or install anything Hopper-specific. Explicit instructions from the user override this workflow. If they haven't decided which model fits yet, or ask whether one is good enough, use the `hopper-try` skill in this plugin first.
Paths below start at `${CLAUDE_SKILL_DIR}`, the folder holding this file (if your host doesn't fill it in, use that folder's absolute path). Run the scripts from the project root: they read and write `.env` in the current directory. They need network access to `withhopper.com` and `api.withhopper.com`; in a sandbox (Codex), request escalated permissions for the first script, with the reason "Set up hopper: get this project a Hopper key (network to withhopper.com and api.withhopper.com; writes .env)", and suggest allowing commands that start with `python3` and the script's path. If the user declines, say Hopper couldn't run and ask how to continue.
## 1. Key
Skip this if `HOPPER_API_KEY` is already set, in the environment or in `.env`.
- **A shell with network** (Codex CLI, Claude Code):
```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/hopper_trial.py
```
Gets a trial key ($2 credit) through [agent registration](https://withhopper.com/auth.md), writes `HOPPER_API_KEY` to `.env` without printing it, and saves the registration privately for step 3. Check that `.env` is in `.gitignore`. Never print, commit, or ship the key to a browser.
- **No network from the shell** (ChatGPT's sandbox can't reach Hopper): call the Hopper connector's `create_api_key` tool (name it after the project, pass the chosen `model`). It returns a one-time link where the user copies the key, the `HOPPER_API_KEY=` line for `.env`, and a snippet. Never paste a full key into the chat. Skip step 3.
## 2. Find the LLM calls and plan
Locate every place the project builds an LLM client or calls a chat model: `OpenAI(`/`AsyncOpenAI(`, `new OpenAI(`, `ChatOpenAI(`, `createOpenAI(`/`@ai-sdk/openai`, `litellm.completion(`, `fetch(".../chat/completions")`, or a framework's LLM service. Note the current model, base URL and how the key is read. Pick the model the user chose (default `gemma-4-31b`; `deepseek-v4.1-flash` if they chose DeepSeek in hopper-try or asked for it).
**Voice agents only** (LiveKit Agents, Pipecat, Vapi, or any realtime conversational loop): measure time to first token on the agent's own system prompt and tools before proposing the change:
```bash
python3 -m pip install openai h2 # inside the project's virtualenv (python3 -m venv .venv if none)
set -a; . ./.env; set +a
python ${CLAUDE_SKILL_DIR}/scripts/hopper_ttft.py --prompt path/to/prompt.txt --tools tools.jPreview of the first 4,000 characters. Read full instructions →
Referenced files: 8 — file references are metadata, not package contents.
---
name: hopper-speak
description: 'Turn text into speech with Hopper text-to-speech (Qwen 3 TTS): play it aloud, save a WAV file, or preview and pick a voice. Needs no setup: the first use registers a key for the agent itself. Use when the user says "read this aloud", "say this out loud", "generate a voiceover", "voiceover for my launch video", "audio for my launch video", "narrate this script", "narration for my demo video", "make a podcast intro", "record an announcement", "voice for my ad", "make an audio file of…", "text to speech", "TTS" or "which voice should I use". Makes the speech track only, not video, music or sound effects. Not for writing a script (plain text), transcribing audio (hopper-transcribe) or running an LLM (hopper-try).'
---
# Speak with Hopper
**Pick the path first.** In ChatGPT, or wherever the shell can't reach Hopper's API, use the Hopper connector's `speak` tool (and `list_voices` to pick a voice): ChatGPT's sandbox can't resolve Hopper's domains, so the script fails there, while `speak` shows an inline audio player. Where you can run commands with network access (Codex CLI, Claude Code), use this skill's script instead: it plays the audio on this machine (or writes the WAV where the user wants it) and uses this agent's own Hopper key, so its usage can move to the user's account later.
`${CLAUDE_SKILL_DIR}` is the folder holding this file (if your host doesn't fill it in, use that folder's absolute path). The script needs network access to `withhopper.com` and `api.withhopper.com`, and writes the agent's key to `~/.config/hopper/`. In a sandbox (Codex), request escalated permissions for the first command, with the reason "Use Hopper speech: create this agent's own Hopper key and synthesize the audio (network to withhopper.com; writes ~/.config/hopper)", and suggest allowing commands that start with `python3` and this script's path so later calls don't ask again. Exit code 3 (`HOPPER_SANDBOX_BLOCKED`) means the sandbox blocked it: rerun the same command with escalation. If the user declines, say Hopper couldn't run and ask how to continue; don't switch to another tool silently. Explicit instructions from the user override these steps.
## Say it
```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/hopper_voice.py speak "Text to say" --play # play it now
python3 ${CLAUDE_SKILL_DIR}/scripts/hopper_voice.py speak --file notes.md --out notes.wav # save a file
```
- It prints `{"file", "seconds", "voice"}`. Tell the user the file and length, in one line.
- **Play or save:** "read this aloud" and "say it" mean `--play`; "make an audio file" means `--out <name>.wav`. Without either, it writes `speech.wav` in the current folder.
- **Text:** speak what the user asked for, as they'd hear it: drop Markdown symbols, code blocks and URLs unless they asked for them read out. Long text is split and joined automatically; over 4,000 characters it stops and asks for `--max-chars` so a long read is never a surprise (about $0.005 per 1,000 characters).
- **Voices:** `voices` lists ids with descriptions, tags and gender. Pick by id or name with `--voice`. The default is a neutral conversational American voice. For a preview, say one short sentence in two or three candidate voices.
- Audio is 24 kHz mono WAV. English is the tested language.
## Key
The first run with no `HOPPER_API_KEY` (environment or the project's `.env`) registers a key for the agent itself with a small trial credit (no sign-up, [agent registration](https://withhopper.com/auth.md)) and saves it to `~/.config/hopper/credentials.json`, mode 600. Never print it or copy it into the project. `status` says where the key comes from without showing it.
To move it to the user's account, see the next section.
## When the trial credit runs low
The agent's own key starts with a small trial credit. When it runs low the script prints `HOPPER_HANDOVER low_credit` (exit 0), and when it runs out, `HOPPER_HANDOVER out_of_credit` (exit 4). Either wayPreview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
---
name: hopper-transcribe
description: 'Transcribe speech in an audio or video file with Hopper speech-to-text (Nemotron ASR), with word timestamps. Takes WAV, MP3, M4A, voice memos and video such as MP4 or MOV (decoded with ffmpeg). Needs no setup: the first use registers a key for the agent itself. Use when the user says "transcribe this", "what does this recording say", "check my video", "what''s said in this video", "review the voiceover in my launch video", "captions for my video", "subtitles", "caption this", "meeting notes from this recording", "summarize this call", "pull quotes from this interview", "speech to text" or "STT". Works from the spoken words only, not the visuals. Not for generating audio (hopper-speak) or running an LLM (hopper-try).'
---
# Transcribe with Hopper
**Pick the path first.** In ChatGPT, or wherever the shell can't reach Hopper's API, use the Hopper connector's `transcribe` tool: pass an attached file as it is (`audio_file`), or a public URL. ChatGPT's sandbox can't resolve Hopper's domains, so the script fails there. Where you can run commands with network access (Codex CLI, Claude Code), use this skill's script instead: it reads files on this machine directly, in any format, and uses this agent's own Hopper key, so its usage can move to the user's account later.
`${CLAUDE_SKILL_DIR}` is the folder holding this file (if your host doesn't fill it in, use that folder's absolute path). The script needs network access to `withhopper.com` and `api.withhopper.com`, and writes the agent's key to `~/.config/hopper/`. In a sandbox (Codex), request escalated permissions for the first command, with the reason "Use Hopper transcription: create this agent's own Hopper key and transcribe the audio (network to withhopper.com; writes ~/.config/hopper)", and suggest allowing commands that start with `python3` and this script's path so later calls don't ask again. Exit code 3 (`HOPPER_SANDBOX_BLOCKED`) means the sandbox blocked it: rerun the same command with escalation. If the user declines, say Hopper couldn't run and ask how to continue; don't switch to another tool silently. Explicit instructions from the user override these steps.
## Transcribe
```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/hopper_voice.py transcribe path/to/recording.m4a # plain text
python3 ${CLAUDE_SKILL_DIR}/scripts/hopper_voice.py transcribe call.wav --json # text, words with start/end seconds
```
- **Formats:** 16-bit mono WAV goes up as is. Anything else (MP3, M4A, AIFF, FLAC, MP4, MOV) is decoded with `ffmpeg`; if it's missing, tell the user the one install command the script prints.
- **Length:** long recordings are split into uploads under the 25 MB limit and the timestamps are joined back, so any length works; it's about $0.05 per hour of audio.
- **A URL:** download it to a temp file first, then transcribe the file.
- **Output:** answer what the user asked (a summary, action items, a quote) from the transcript, and quote it exactly when they want exact words. Use `--json` for captions, timestamps or who-said-when questions. The model writes lowercase text without punctuation, English only, and can mishear names and brands: say so when a name matters.
- `no speech detected` means the file has no audible speech, not an error.
## Key
The first run with no `HOPPER_API_KEY` (environment or the project's `.env`) registers a key for the agent itself with a small trial credit (no sign-up, [agent registration](https://withhopper.com/auth.md)) and saves it to `~/.config/hopper/credentials.json`, mode 600. Never print it or copy it into the project. `status` says where the key comes from without showing it.
To move it to the user's account, see the next section.
## When the trial credit runs low
The agent's own key starts with a small trial credit. When it runs low the script prints `HOPPER_HANDOVER low_credit` (exit 0), and when it runs out, `HOPPER_HANDOVER out_of_credit` (exit 4). Either way:
1. TellPreview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
---
name: hopper-try
description: 'Tests DeepSeek V4.1 Flash and Gemma 4 31B on the user''s own prompts: finds real prompts in the project or chat, runs both side by side with time to first token, tokens per second and cost, and gives a verdict per example. Changes no code. Use when asked "there''s a new DeepSeek model, how is it? test it for my use case", "DeepSeek V4.1 Flash any good? try it on my prompts", "is Gemma 4 worth trying for this", "give the new DeepSeek a vibe check", "try this prompt on a few open models", "run our real prompts through DeepSeek", "gemma 4 vs deepseek for this, which one?", "could an open model replace GPT-4.1 here", "is DeepSeek a drop-in replacement for OpenAI here", "worth switching to an open model?", "does DeepSeek handle our function calls reliably", "check if Gemma returns valid JSON for our schema" or "try Hopper". Not for testing their code, comparing files, writing prompts, running models locally (Ollama), fine-tuning or published benchmark scores; to switch the project''s model, use hopper-integrate.'
---
# Try open models on your own prompts
Hopper serves DeepSeek V4.1 Flash (`deepseek-v4.1-flash`) and Gemma 4 31B (`gemma-4-31b`) behind an OpenAI-compatible API at `https://api.withhopper.com/v1`. This skill answers "would one of these work for my use case?" with the user's real prompts, not a generic demo. It measures and shows; it changes no code. Explicit instructions from the user override these steps.
## How to run a model
1. **The Hopper connector's `generate` tool**, when it's available (ChatGPT, Claude, any host with the Hopper connector). Prefer it everywhere it exists: it needs no key or network from your shell, and it returns each answer with time to first token, tokens per second, token counts and cost. Pass `models: ["deepseek-v4.1-flash", "gemma-4-31b"]`, the user's `system` prompt and `prompt` (or `messages` for a conversation), and keep `reasoning` off unless the user asks for thinking. In ChatGPT, always use `generate`: its sandbox can't reach Hopper's API, so scripts there fail.
2. **This skill's script**, only when there's no `generate` tool and you can run commands with network access (Codex CLI, Claude Code):
```bash
python3 ${CLAUDE_SKILL_DIR}/scripts/hopper_try.py --system-file prompt.txt "first example" "second example"
python3 ${CLAUDE_SKILL_DIR}/scripts/hopper_try.py --examples examples.json --tools tools.json --json
```
`${CLAUDE_SKILL_DIR}` is the folder holding this file (if your host doesn't fill it in, use that folder's absolute path). It runs every example on both models, streamed on a warm connection, and prints each answer with TTFT, tokens per second and token counts (it doesn't report cost; say so if the user asks, or point them to the console's usage page). `--examples` takes a JSON list of strings, `{"system", "prompt"}` objects or `{"messages": [...]}`; `--tools` sends OpenAI-format tools and prints each tool call with whether its arguments are valid JSON; `--models` narrows the list. Standard library only. The key comes from `HOPPER_API_KEY` or the project's `.env`; with none, the first run registers a key for the agent itself (small trial credit, no sign-up, [agent registration](https://withhopper.com/auth.md)) in `~/.config/hopper/`, never in the project. In a sandbox (Codex), request escalated permissions for the first run, with the reason "Try Hopper models: run your prompts on DeepSeek V4.1 Flash and Gemma 4 31B (network to withhopper.com and api.withhopper.com; writes ~/.config/hopper)", and suggest allowing commands that start with `python3` and the script's path. Exit 3 (`HOPPER_SANDBOX_BLOCKED`) means the sandbox blocked it: rerun with escalation.
3. Neither available: say Hopper can't run here and give the user `https://withhopper.com/console` to try the models in the browser.
## 1. Find real prompts
- **In a project:** look for what the app actually sends: system prompts (`system`, `SYSTEM_PROMPT`, `prompt.txt`, Preview of the first 4,000 characters. Read full instructions →
Referenced files: 2 — file references are metadata, not package contents.
Try the latest open-source models: run your own prompts on Hopper's two LLMs side by side with time to first token, tokens per second and cost (generate tool and the new hopper-try skill, now the onboarding skill). Create an API key with a ready code snippet. hopper-integrate now moves any chat-completions project to a Hopper model. Speech and transcription use the connector. The connector declares its sign-in so signed-in requests use your account. Removed the voice-agent latency review and benchmark skills.
Declared in the saved package. Remote tools may change independently.
Publisher declarations from the archived package. These are separate from our research and the live service's terms.
Package observed Nov 6, 2026.
plugin_asdk_app_6abf2f857c3c8191817ac3af7ff6e68a
Download plugin data (JSON)Plugin details: served from cache. Prepared . Refreshed when plugin data changes or after 6 hours. Your account and Follow status are live.