Favicon of Prompt Optimizer

Prompt Optimizer

Open-source tool for optimizing, testing, and evaluating AI prompts across OpenAI, Gemini, DeepSeek and other LLMs, with web, desktop, and Docker options.

Prompt Optimizer website screenshot
Prompt Optimizer GitHub repository preview

Prompt Optimizer is a tool for improving AI prompts before you send them to a model. It takes a prompt you write, import, or pull from a template library, and runs it through an optimization pass that produces a clearer, more structured version. You then test, evaluate, and compare the result against the original to see whether it actually improved. It's built for developers, prompt engineers, and anyone who regularly writes prompts for OpenAI, Gemini, DeepSeek, Grok, or similar models and wants a repeatable process instead of trial and error in a chat window.

The project ships as a web app, a desktop app, a Chrome extension, and a Docker image, so you can pick the deployment that fits how you work. All processing happens client-side: the app talks directly to your chosen AI provider's API with no intermediate server handling your data.

Key features

  • Intelligent optimization: One-click prompt optimization with multi-round iteration to sharpen AI response accuracy.
  • Dual mode optimization: Separate handling for system prompts and user prompts.
  • Analysis and compare evaluation: Single-result evaluation and side-by-side compare evaluation to check whether a change actually helped.
  • Multi-model integration: Works with OpenAI, Gemini, DeepSeek, Grok, Zhipu AI, SiliconFlow, MiniMax, and other providers.
  • Image generation modes: Text-to-image, image-to-image, and multi-image generation using models like Gemini, Seedream, and Grok, including style transfer from reference images.
  • Prompt sources and favorites: Start from manual writing, templates, local imports, or the Prompt Garden, then save stable prompts as version-tracked, reusable favorites.
  • Advanced testing mode: Context variable management, batch replacement, multi-turn conversation simulation, and Function Calling support for OpenAI and Gemini.
  • Client-side architecture: Data stays in your browser or local app; requests go directly to the AI provider.
  • Access control: Optional password protection for hosted deployments.
  • MCP protocol support: Exposes tools like optimize-user-prompt, optimize-system-prompt, and iterate-prompt for MCP-compatible apps like Claude Desktop.

Ideal use cases

This fits developers building prompt libraries for production apps who need a way to iterate on a prompt and measure whether changes help, not just guess. It's a good match for teams testing prompts against multiple providers before locking in one, since the multi-model support lets you compare outputs without rewriting integration code each time. The desktop app is the right pick if you need to hit local models via Ollama or providers with strict CORS policies, since it removes browser cross-origin restrictions entirely.

It also suits anyone doing structured prompt engineering work: building reusable templates, running multi-turn conversation tests, or managing context variables across many prompt variants. The MCP integration makes it useful as a backend tool inside Claude Desktop or other MCP clients rather than a standalone destination.

It's not the right tool if you need server-side prompt management with team permissions and centralized storage, since the architecture is intentionally client-side with data kept locally. It's also not a prompt-hosting or API-serving platform; it optimizes and tests prompts, but you still need your own provider API keys and your own application to consume the final prompt.

Installation

The simplest path is the hosted version at prompt.always200.com, which runs entirely client-side with no data leaving your browser.

For self-hosting, deploy to Vercel with one click, or fork the repo first and import it to Vercel to track upstream updates. Cloudflare Pages deployment is also supported via the Cloudflare deploy button.

For Docker:

docker run -d -p 8081:80 --restart unless-stopped --name prompt-optimizer linshen/prompt-optimizer

With API keys and password protection:

docker run -d -p 8081:80 \
  -e VITE_OPENAI_API_KEY=your_key \
  -e ACCESS_USERNAME=your_username \
  -e ACCESS_PASSWORD=your_password \
  --restart unless-stopped \
  --name prompt-optimizer \
  linshen/prompt-optimizer

For Docker Compose:

git clone https://github.com/linshenkx/prompt-optimizer.git
cd prompt-optimizer
docker compose --env-file .env -f docker/docker-compose.yml up -d

Desktop installers and archives for Windows, macOS, and Linux are available on the GitHub Releases page, and the Chrome extension is available on the Chrome Web Store. The MCP server starts automatically in Docker deployments and is reachable at /mcp on the same port as the web app.

Frequently asked questions

Share:

Stars
38.3K
Forks
4.3K
Last commit
5 days ago
Repository age
2 years
Self-hosted
No
Activity score
85/100
View Repository
Ad
Favicon

 

  
 

Similar to Prompt Optimizer

Favicon

 

  
 
Favicon

 

  
 
Favicon