Wordmark is a client-side AI chat for OpenAI/xAI Responses APIs and local LM Studio or Ollama servers. It supports tool/function calling, TTS, themes, and fully local storage — no backend required.
Docs:
- Getting Started
- Overview
- Services & Models
- Tool Calling
- Skills
- Party Mode
- Streaming
- Memory
- Security
- Storage
- UI & UX
- Docker
- Android App
- Troubleshooting
- Providers — OpenAI Responses (hosted), xAI Grok (Responses-compatible), and local LM Studio or Ollama servers (Services & Models)
- Tool calling — built-in weather, provider web + X search, Code Interpreter, image generation, file search (OpenAI), direct file attachments (xAI), and custom MCP servers (Tool Calling)
- Skills — uploadable
SKILL.mdinstruction packages the assistant loads on demand to specialize for a task; ships with example skills (Skills) - Streaming & reasoning — dedicated reasoning panel, rich tool timelines, inline code previews, automatic image capture (Streaming)
- Party mode — autonomous multi-character group chat over your chosen provider; build a cast and scenario, then interject any time without pausing (Party Mode)
- TTS — OpenAI (13 voices) and xAI (5 voices) providers, optional autoplay, per-message controls, audio cached locally
- UX — themes, responsive layout, syntax highlighting, markdown, image gallery (UI & UX)
- Local-only storage — conversations, images, and audio via IndexedDB; keys stay in the browser (Storage)
- Memory — local, FIFO-limited memories appended to the system prompt (Memory)
git clone https://github.com/h1ddenpr0cess20/Wordmark.git
cd Wordmark
npm install
npm run dev # dev server on http://localhost:3000
# npm run dev:https # HTTPS — needed for some APIs, TTS, and geolocationWordmark builds with Vite. Use npm run dev for development or npm run build to produce a static bundle in dist/ (serve it with npm run preview). Opening index.html straight from the filesystem no longer works — the app must be served by the dev server or built first. See Getting Started.
- In Settings → API Keys, add your OpenAI/xAI keys. Keys and URLs are stored locally.
- Choose a provider and model in Settings → Model.
- Type a message and send.
- LM Studio — run the server (default
http://localhost:1234), set the base URL in Settings → API Keys, then select LM Studio in Settings → Model (LM Studio guide) - Ollama — run the server (default
http://localhost:11434), set the base URL in Settings → API Keys, then select Ollama in Settings → Model
Note: Chrome may prompt you to allow local network access. This is only used to connect to local LM Studio/Ollama servers.
HTTPS is recommended for full functionality — quick steps in Getting Started. Full Docker/Compose instructions and SSL options in the Docker guide.
# Pull from Docker Hub and run
docker run --rm -p 8080:80 h1ddenpr0cess20/wordmark:latestOr build from source:
docker build -t wordmark:latest .
docker run --rm -p 8080:80 wordmark:latest- Architecture — high-level structure
- Security & Storage — data handling
- UI & UX — layout and design
- Development & CONTRIBUTING — developer guide
Common tasks:
- Add tools — register tool metadata in
src/ts/services/api/staticTools.ts, implement handlers (seesrc/ts/services/weather.ts), and tune provider quirks insrc/ts/services/providers.ts— Tool Calling - Adjust models/providers — edit
src/config/config.ts— Services & Models - Themes and styling —
src/css/themes/**,src/css/components/**
- Enable Tools in Settings to allow function calls for weather, web search, file attachments, and any MCP servers you connect (Tool Calling)
- Manage conversations, images, and audio locally via History and Gallery
- Use TTS for spoken responses — configure provider and voice in Settings → TTS
- Privacy/Security — client-side only; no tracking (Security)
- Troubleshooting — common issues and tips (Troubleshooting)
- Not a Companion — philosophy and boundaries (Not a Companion)
MIT — see LICENSE