Browser-based web UI for the Kiro CLI (chat, editor, git, terminal)
10K+
A browser-based front-end for the Kiro CLI: chat with an AI coding agent from any device, with a live terminal, a file editor, and git/forge workflows in the same tab.
Vibekit runs kiro-cli as an Agent Client Protocol (ACP) subprocess and wraps it in a full workspace UI. The server is the single source of truth: every action is persisted and echoed to every connected client over Server-Sent Events, so a conversation open on your phone and your desktop stays in sync.
Published as a multi-arch (amd64 + arm64) container image on GHCR (ghcr.io/cplieger/vibekit) and Docker Hub (cplieger/vibekit).
Vibekit is in alpha and under active development. Any update can introduce a breaking change with no migration path to the API, the stored chat format, configuration, or behavior. Pin a specific image tag instead of latest, and check the release notes before upgrading.
Vibekit controls an agent that can run shell commands and read and write your files under /workspace, and it exposes kiro-cli's stored credentials. It has no built-in authentication: anyone who can reach the port can use it. Before exposing it beyond your own machine, do one (ideally both) of:
Signing in from the UI authenticates kiro-cli to AWS (the agent's identity); it is not a gate on vibekit itself.
docker pull cplieger/vibekit:latest
Also published to ghcr.io/cplieger/vibekit with identical images and tags. Release versions are tagged vX.Y.Z alongside latest.
# Example compose for vibekit. See the README for all configuration options and hardening.
services:
vibekit:
image: ghcr.io/cplieger/vibekit:latest
container_name: vibekit
restart: unless-stopped
# Required, not optional: tini reaps orphaned children. An agent's terminal commands fork
# gits, language servers and build tools whose own parent exits, re-parenting them onto PID 1,
# and the server waits only for the children it spawned itself; at PID 1 it collects them as
# zombies instead, until the container runs out of process slots.
init: true
user: "${PUID:-1000}:${PGID:-1000}" # from .env; must own the /config, /workspace and /uploads host dirs
ports:
- "9847:9847"
volumes:
- "/opt/appdata/vibekit/config:/config"
- "/opt/appdata/vibekit/workspace:/workspace"
- "/opt/appdata/vibekit/uploads:/uploads"
VIBEKIT_KIRO_ACP_ARGS)AGPL-3.0-or-later. See LICENSE.
The terminal's two web fonts ship under their own licences, each licence text served beside the font files under /vendor/fonts/: Monaspace Neon NF under SIL Open Font License 1.1, and web-terminal-glyphs under Apache-2.0.
Content type
Image
Digest
sha256:1881344bb…
Size
81.4 MB
Last updated
about 14 hours ago
docker pull cplieger/vibekit