tapes local
Bootstrap a local Postgres (with pg_duckdb + pgvector) and Ollama in Docker. Use this for single-machine development against tapes.
Requires Docker. tapes local up starts the containers; tapes serve still runs separately and points at the local Postgres.
Usage
# Start Postgres + Ollama containers
tapes local up
# Show container status
tapes local status
# Stop and remove containers
tapes local down Running tapes local with no subcommand is equivalent to tapes local up.
What tapes local up does
- Ensures the
tapes-localDocker network exists. - Pulls the Postgres image if it isn't cached.
- Creates a data directory under
~/.tapes/postgres/for Postgres data. - Starts
tapes-local-postgreson port 5432 with databasetapes, usertapes, passwordtapes. - Provides Ollama on port 11434: when a native Ollama install is present it is used directly (it has GPU access on macOS; if it isn't running, you're told to start it); otherwise the
tapes-local-ollamacontainer is started with~/.ollamaas the model cache. Pass--docker-ollamato force the container. - Waits for readiness and pulls the
embeddinggemmamodel. - Writes the Postgres + Ollama connection settings into your
.tapes/config.toml, sotapes serveneeds no flags.
Point tapes at the local Postgres
After tapes local up finishes, start the proxy and API against the local DSN:
tapes serve --postgres "postgres://tapes:tapes@localhost:5432/tapes?sslmode=disable" Optionally pull a chat model into the Ollama container:
docker exec -it tapes-local-ollama ollama pull qwen3-coder:30b Flags
Flags apply to tapes local and tapes local up.
| Flag | Default | Description |
|---|---|---|
--postgres-port | 5432 | Host port to bind Postgres to |
--ollama-port | 11434 | Host port to bind Ollama to |
--postgres-image | public.ecr.aws/g4e5l3z3/papercomputeco/postgres:17.7-pgduckdb-1.1.1 | Docker image to use for Postgres (must include pg_duckdb and pgvector) |
--ollama-image | ollama/ollama:latest | Docker image to use for Ollama |
--docker-ollama | false | Run Ollama in Docker even if a native install is present |
Status
tapes local status Reports the running state of tapes-local-postgres and tapes-local-ollama. Containers that don't exist yet are reported as not created.
Tear down
tapes local down
# Also delete the captured data for a fresh start
tapes local down --wipe Removes the tapes-local-postgres and tapes-local-ollama containers. The Postgres data directory under ~/.tapes/postgres/ and the Ollama cache under ~/.ollama are preserved so the next tapes local up resumes with the same data and models. Pass --wipe to also delete the Postgres data directory — captured sessions are gone for good, so the next tapes local up starts with an empty database.