# TavernAI-v1: The Legacy Chat Frontend for KoboldAI, NovelAI and OpenAI Backends

> TavernAI-v1 is the archived-lineage frontend for character chat and storywriting that talks to KoboldAI, NovelAI, OpenAI, Claude and Ollama. It installs from a zip plus Node.js, serves on port 8000, and is a maintenance-era choice rather than a new deployment.

**TavernAI/TavernAI-v1** — Atmospheric adventure chat for AI language models (KoboldAI, NovelAI, Pygmalion, OpenAI chatgpt, gpt-4)

- Repository: https://github.com/TavernAI/TavernAI-v1
- Website: https://tavernai.net
- Stars: 2,698 · Forks: 346
- Language: JavaScript
- License: MIT
- Published: 2026-09-14 · Updated: 2026-09-14 · Language: en
- Canonical page: https://hysenlabs.com/projects/tavernai-tavernai-v1

## What TavernAI-v1 actually solves for character chat

Running a local language model gives you a text completion endpoint, not a conversation. TavernAI-v1 sits between the two. It is a browser frontend for chat and storywriting that the README describes as compatible with many backends, and it holds the parts a raw completion API does not: character definitions, group chats with several characters at once, story mode, world info, and message editing. The audience is people who already have a model running somewhere, either locally through KoboldAI or KoboldCpp, or remotely through OpenAI, NovelAI, Claude or Ollama, and who want a persistent interface over it rather than a terminal. The repository itself is labelled legacy, and the README states plainly that TavernAI 2 is available at the main TavernAI repository. That sentence is the most important line on the page: this project is the earlier line of development, kept public, not the recommended starting point.

## The request path: Express, routes and a config file

The layout is a small Node application. server.js is the entry point, routes/ holds the request handlers, public/ serves the browser client and its assets, and config.conf holds configuration at the repository root. package.json lists express, cookie-parser, cors, csrf-csrf, multer and needle among the dependencies, which tells you the shape of the thing: an HTTP server, cookie and CSRF handling for the session, multipart uploads for character cards and images, and an outbound HTTP client for calling whichever backend you selected. Character cards are handled with png-chunk-text, png-chunks-extract and png-chunks-encode, so card data is embedded in PNG metadata rather than kept in a sidecar format. Image processing uses sharp and webp-converter, and sanitize-filename guards stored filenames. Nothing here is a database: state lives in the public/ tree and the config file, which is exactly what the Docker volumes mount. The design is a single process proxying generation requests to an external model, and the client never talks to the model directly.

## Install from the zip, or run it with Docker on port 8000

The README gives two paths. The manual path is Node.js plus the repository zip. Download and install Node.js, and on Windows tick the box in the installer for Additional Build-Tools and answer Yes to All when the tools install script asks. Download the repository archive, then start it per platform:

```bash
# Windows
Start.bat

# Linux
./start-linux.sh

# Other operating systems
npm install
node server.js
```

On Windows and Linux the scripts wrap the same two steps, installing dependencies and then running node server.js. The README does not state which port the server binds for this manual path; the Dockerfile exposes 8000, and docker-compose.yml maps it, so that is the port to expect in the container route. For the container route, build and start with Compose:

```bash
docker compose up -d
```

The compose file defines a single service named tavernai, built from the local Dockerfile, publishing 8000:8000, and mounting ./public and ./config.conf into the container at /home/node/app/public and /home/node/app/config.conf. Because config.conf is bind-mounted from the host, edits on the host apply to the container. The Dockerfile is based on node:21.5.0-alpine3.19, runs npm install, removes .git, and starts with node /home/node/app/server.js. The README also lists a Windows .exe version on SourceForge and a Google Colab notebook as the option for phones or tablets, with a note that the Colab path is third-party. After starting, open the browser client, pick a backend, and create a character; the README's feature list is the checklist for what should be present.

## Where TavernAI-v1 stops being the right tool

The README itself sets the first boundary: this is the legacy repository, and TavernAI 2 lives elsewhere. If you are choosing a frontend today, choosing this one means choosing the older line. The release history reinforces it: the newest release listed is 1.5.4 from 2024-03-05, with 1.5.3 and 1.5.2 before it, while the last push to the repository was on 2026-06-16. Commits and releases are not the same thing, and the README does not document an upgrade path, a migration tool, or a rollback procedure. Back up the public/ directory and config.conf before changing anything, because that is where the state is. The second boundary is backend coupling. Features such as GPT and Claude picture recognition are tied to those providers, not to the local Kobold path, and the README does not describe what happens when a backend is unreachable or returns a truncated generation. Its tip for an unfinished message is to send the request again or say continue, depending on the model, which is a workaround rather than a guarantee. The third boundary is operational: the Dockerfile installs dependencies at build time with npm install, so a rebuild pulls whatever the semver ranges resolve to, and the README does not pin or document a reproducible lockfile workflow for the container.

## SillyTavern is the fork that kept going

The most direct alternative is SillyTavern, which began as a fork of TavernAI and continued development under its own name. The difference in approach is not a feature checklist; it is where the two projects sit in time. TavernAI-v1 is the earlier codebase, with the README pointing to TavernAI 2 as its successor and the release line stopping at 1.5.4 in 2024. SillyTavern is a separate project with its own repository, its own release cadence and its own documentation, and it is not maintained by this repository. If you are starting fresh and want a frontend with current documentation and an active issue tracker, that is the comparison to make. If you already run TavernAI-v1 and it works with your KoboldAI or NovelAI setup, the honest reason to stay is that a working install with your characters and world info already in public/ is worth more than a migration you have not scoped. The README does not describe moving data between the two, so treat any migration as manual work.

## Licence, maintenance and what an upgrade costs you

The repository is MIT licensed, which permits use, modification and redistribution provided the copyright notice and permission notice are kept. That is a permissive licence, and it means the code can be vendored or forked. It does not mean the project is maintained: the README calls this the legacy repository, the last push was on 2026-06-16, and the newest release is 1.5.4 from 2024-03-05. Treat upgrade cost as the real budget item. Dependencies are declared with caret ranges in package.json, so npm install can move express, sharp, multer and the rest within their major versions without any change on your side, and the README documents no pinned install. sharp and webp-converter are the packages most likely to need native build tooling, which is why the Node.js installer instructions ask for Additional Build-Tools. If you deploy with Docker, the image is rebuilt from the Dockerfile against node:21.5.0-alpine3.19, and the compose file restarts the container unless-stopped, so a host reboot brings the service back without intervention. None of this is legal advice; if you redistribute a modified build, read the LICENSE file in the repository.

## Conclusion

Adopt TavernAI-v1 if you are maintaining an existing install, need a browser UI that speaks to KoboldAI or NovelAI, and are comfortable with a codebase whose last push was on 2026-06-16 and whose newest release is 1.5.4 from 2024-03-05. Do not adopt it for a new deployment that expects ongoing feature releases, a documented upgrade path, or a supported migration to TavernAI 2; the README points readers to the newer repository instead. Verify first that your chosen backend is reachable from the host, that port 8000 is free, and that your config.conf survives the Docker volume mount at ./config.conf.

## FAQ

### How do I install TavernAI-v1 on Windows?

Install Node.js first, ticking the Additional Build-Tools box in the installer and answering Yes to All when the tools script asks. Download the repository archive, then run Start.bat to install dependencies and start the server.

### Which backends does TavernAI-v1 support?

The README lists the Kobold series (KoboldAI, KoboldCpp and Horde), Oobabooga's Text Generation Web UI, OpenAI including ChatGPT and GPT-4 with reverse proxies, NovelAI, Claude and Ollama. Backend selection happens in the interface, not in config.conf.

### Is TavernAI-v1 still maintained, and should I use it instead of TavernAI 2?

The README calls this the legacy repository and points to TavernAI 2 at the main TavernAI repository. The last push was on 2026-06-16 and the newest release is 1.5.4 from 2024-03-05, so a new deployment should look at the successor project first.

## Sources

- [License: MIT](https://github.com/TavernAI/TavernAI-v1/blob/main/LICENSE)
- [Project website](https://tavernai.net)
- [README](https://github.com/TavernAI/TavernAI-v1/blob/main/README.md)
- [Releases](https://github.com/TavernAI/TavernAI-v1/releases)
- [TavernAI/TavernAI-v1 on GitHub](https://github.com/TavernAI/TavernAI-v1)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/tavernai-tavernai-v1
