Quick start
One container, no database server, no account. Run the models on your own hardware and you don't need an API key either. Point it at a hosted endpoint instead and the inference leaves your machine, as does anything you send through Telegram capture once you connect it.
curl -fsSL https://getkothai.com/install.sh | shThe script starts the container, waits until it serves, and prints the URL. Run with --help to see all flags. It also installs a kothai command into /usr/local/bin (or ~/.local/bin when that's not writable) with subcommands like start, stop, restart, status, logs, update, and uninstall. Pass --no-shim to skip it. It never prompts for a password. kothai update reads the port, mounts and environment back off the running container, so an API key you passed to --key is never copied into a file on your PATH.
Everything below is what the script does, if you'd rather do it yourself.
docker run -d --name kothai \
-p 5173:5173 \
-v ./data:/app/data \
-v ./models:/app/models \
--restart unless-stopped \
ghcr.io/ibrahimtareq/kothai:latestOr with compose. This is the same container plus the options you'll probably want later, already written out and commented:
curl -O https://raw.githubusercontent.com/IbrahimTareq/kothai/main/docker-compose.yml
docker compose up -dThere is no login until you set KOTHAI_PASSWORD. Anyone who can reach the port can read and write everything. On your own machine or a home LAN that's fine and is the default. Set a password before Kothai is reachable from anywhere else (a public hostname, a VPS, a forwarded port) and put TLS in front of it. security.md has the threat model.
Build from source
Instead of pulling the published image, uncomment build: . in docker-compose.yml, then:
docker compose up -d --buildWithout Docker
git clone https://github.com/IbrahimTareq/kothai.git
cd kothai
corepack enable # provides the pnpm version pinned in package.json
pnpm install
pnpm startLast updated on