https://github.com/h1ddenpr0cess20/wordmark
Open-source chatbot web app for the Responses API
https://github.com/h1ddenpr0cess20/wordmark
chatbot lm-studio mcp ollama responses-api xai
Last synced: 9 days ago
JSON representation
Open-source chatbot web app for the Responses API
- Host: GitHub
- URL: https://github.com/h1ddenpr0cess20/wordmark
- Owner: h1ddenpr0cess20
- License: mit
- Created: 2025-10-27T03:46:21.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2026-06-16T06:04:57.000Z (10 days ago)
- Last Synced: 2026-06-16T08:14:49.125Z (10 days ago)
- Topics: chatbot, lm-studio, mcp, ollama, responses-api, xai
- Language: TypeScript
- Homepage: https://wordmark-chatbot.vercel.app
- Size: 1.9 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: docs/security.md
Awesome Lists containing this project
README
# Wordmark

**An open source AI assistant platform**
[](https://github.com/h1ddenpr0cess20/Wordmark)
[](LICENSE)
[](https://www.typescriptlang.org/)
[](https://github.com/h1ddenpr0cess20/Wordmark/stargazers)
[](https://github.com/h1ddenpr0cess20/Wordmark/issues)
[](https://github.com/h1ddenpr0cess20/Wordmark/pulls)
[](https://github.com/h1ddenpr0cess20/Wordmark/commits)
## Overview
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](docs/getting-started.md)
- [Overview](docs/overview.md)
- [Services & Models](docs/services.md)
- [Tool Calling](docs/tool-calling.md)
- [Party Mode](docs/party-mode.md)
- [Streaming](docs/streaming.md)
- [Memory](docs/memory.md)
- [Security](docs/security.md)
- [Storage](docs/storage.md)
- [UI & UX](docs/ui-and-ux.md)
- [Docker](docs/docker.md)
- [Android App](docs/android.md)
- [Troubleshooting](docs/troubleshooting.md)
## Features
- **Providers** — OpenAI Responses (hosted), xAI Grok (Responses-compatible), and local LM Studio or Ollama servers ([Services & Models](docs/services.md))
- **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](docs/tool-calling.md))
- **Streaming & reasoning** — dedicated reasoning panel, rich tool timelines, inline code previews, automatic image capture ([Streaming](docs/streaming.md))
- **Party mode** — autonomous multi-character group chat over your chosen provider; build a cast and scenario, then interject any time without pausing ([Party Mode](docs/party-mode.md))
- **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](docs/ui-and-ux.md))
- **Local-only storage** — conversations, images, and audio via IndexedDB; keys stay in the browser ([Storage](docs/storage.md))
- **Memory** — local, FIFO-limited memories appended to the system prompt ([Memory](docs/memory.md))
## Quick Start
```bash
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 geolocation
```
Wordmark builds with [Vite](https://vite.dev). 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](docs/getting-started.md).
1. In **Settings → API Keys**, add your OpenAI/xAI keys. Keys and URLs are stored locally.
2. Choose a provider and model in **Settings → Model**.
3. Type a message and send.
### Local Models
- **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](docs/lm-studio.md))
- **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 & Docker
HTTPS is recommended for full functionality — quick steps in [Getting Started](docs/getting-started.md). Full Docker/Compose instructions and SSL options in the [Docker guide](docs/docker.md).
```bash
# Pull from Docker Hub and run
docker run --rm -p 8080:80 h1ddenpr0cess20/wordmark:latest
```
Or build from source:
```bash
docker build -t wordmark:latest .
docker run --rm -p 8080:80 wordmark:latest
```
## Architecture & Development
- [Architecture](docs/architecture.md) — high-level structure
- [Security](docs/security.md) & [Storage](docs/storage.md) — data handling
- [UI & UX](docs/ui-and-ux.md) — layout and design
- [Development](docs/development.md) & [CONTRIBUTING](CONTRIBUTING.md) — developer guide
**Common tasks:**
- **Add tools** — register tool metadata in `src/ts/services/api/staticTools.ts`, implement handlers (see `src/ts/services/weather.ts`), and tune provider quirks in `src/ts/services/providers.ts` — [Tool Calling](docs/tool-calling.md)
- **Adjust models/providers** — edit `src/config/config.ts` — [Services & Models](docs/services.md)
- **Themes and styling** — `src/css/themes/**`, `src/css/components/**`
## Usage
- Enable **Tools** in Settings to allow function calls for weather, web search, file attachments, and any MCP servers you connect ([Tool Calling](docs/tool-calling.md))
- Manage conversations, images, and audio locally via **History** and **Gallery**
- Use **TTS** for spoken responses — configure provider and voice in Settings → TTS
## Policies & Notes
- **Privacy/Security** — client-side only; no tracking ([Security](docs/security.md))
- **Troubleshooting** — common issues and tips ([Troubleshooting](docs/troubleshooting.md))
- **Not a Companion** — philosophy and boundaries ([Not a Companion](docs/not-a-companion.md))
## License
MIT — see LICENSE
---
© 2025 Dustin Whyte | Released under the MIT License