api.mepxdev.com
MepX API, a production language model API serving OpenAI-compatible chat completions, streaming and non-streaming.
FastAPI
OpenAI-compatible
SSE streaming
PostgreSQL
Compatibility was the design constraint. The service speaks OpenAI's request format, response shape and error envelope, so the official SDK works unmodified. Model listing, completions, server-sent event streaming and SDK-level exception handling all behave the way a developer already expects, and there is no custom client library to learn.
Consumers authenticate with issued keys, stored only as SHA-256 hashes alongside an indexed prefix, so verifying one is a single indexed query and a constant-time comparison rather than a table scan. Plaintext is returned once at creation and is unrecoverable afterwards. Upstream provider credentials exist in exactly one module and are identified everywhere else, including logs and the admin interface, by their last four characters.
Upstream keys are selected by lowest in-flight request count rather than round-robin, which distributes concurrent load more evenly, and failures are classified and handled by cause with exponential backoff and a bounded retry budget.
Per-key rate limits and daily token budgets are enforced before any upstream call, so a throttled caller costs nothing. A database outage degrades the service to a clear status response instead of a crash loop, and recovers on its own without a restart. Every request emits one structured JSON log line, passed through a redaction filter as a final guard against credential leakage.
Decision
- Chose
- Resolving key selection and response headers before the first byte reaches the client
- Over
- Retrying transparently when an upstream stream fails
- Because
- Once a response body has begun, retry is impossible. An interrupted stream terminates with a structured error frame instead of a silent truncation.
Read the API reference
See the service index
cloud.mepxdev.com
MEPX Cloud, an AI chat workspace with four models, streaming replies, and conversation history that never leaves the browser.
Streaming APIs
OAuth
Local-first storage
Markdown
Four models sit behind one picker: Air for speed, Pro for everyday work, Max for hard problems, and an uncensored option. The picker shows which ones a plan includes. Replies stream as they are written, with stop, regenerate and edit-and-resend, rendered as Markdown with syntax-highlighted code.
Chatting needs no account at all. Signing in with Google or GitHub exists only for subscriptions, and a second provider joins the existing account when the verified email matches. Attachments are shrunk in the browser before they are sent, capped at two images a message, and the app switches to Pro automatically because that is the model that reads them. Eight releases so far, each written up on a public changelog.
Decision
- Chose
- Conversations stored in the visitor's own browser
- Over
- Chat history held on the server
- Because
- A conversation the server never holds cannot leak and cannot be handed over, and deleting one is immediate because it does not involve me at all. The cost is real: history does not follow you to another device.
Open MEPX Cloud
Read the changelog
Grammar Fixer
A Windows tray app that fixes your writing without interrupting it.
Python
Windows tray
Global hotkey
LLM APIs
Press Insert and type as you normally would. Press Insert again and your text is replaced where it sits, with grammar, spelling and punctuation corrected, in roughly two seconds. It works in any application that accepts normal typing: email, documents, browsers, chat, code editors.
That is the whole point of it. Copying a paragraph into DeepL or another tab, waiting, then pasting the result back is four steps and a lost clipboard, every single time. This is one key, pressed twice, and your clipboard is put back the way you left it.
Eight output styles decide how far it goes. Grammar only fixes mistakes and changes nothing else. Professional, Formal, Casual, Concise and Academic rewrite to match a tone. Expert writing polishes the whole thing. Or you write your own instruction and it follows that instead. Five MEPX Cloud engines run behind it, from Pro for the best quality to Flash for speed.
Decision
- Chose
- Replacing the text in place, on a second press of the same key
- Over
- A separate window to paste into and copy back out of
- Because
- The round trip through another tab costs four steps and your clipboard on every correction
Source on GitHub
Discord bots
Bots for Roblox roleplay communities. The one running now handles support tickets, staff announcements and an AI assistant for Bundeswehr Secret Service.
discord.js
Slash commands
SQLite
LLM APIs
Bundeswehr Secret Service is a Roblox roleplay group. Like most of them it needs support that does not depend on one particular person being awake, and a server that looks organised to someone deciding whether to join.
A member clicks the ticket button in the support channel and the bot opens a numbered private channel, ticket-0001, visible only to that member, the staff roles and the bot, then pings staff inside it. One open ticket per member at a time. Closing takes a confirmation, after which the channel is renamed to closed-ticket-0001 and kept as a staff-only record.
Staff post through the bot as well: plain messages with normal Discord formatting, multi-line embeds written in a modal, and file drops of up to five attachments. Anyone can ask the assistant with /question, and the answer clears itself out of the channel after sixty seconds, so a support server does not slowly turn into an AI transcript. The reply says plainly that it can be wrong.
Decision
- Chose
- Renaming and archiving a ticket channel when it closes
- Over
- Deleting the channel once the issue is resolved
- Because
- The full conversation stays readable to staff afterwards, which is the only reason to log support in the first place.
See the bot's live status