masume
★ 107Apache License 2.0Open Source — No Paywall10 Containers — 10 containers — heavy hosting footprintPackage · Binary · SourceNeeds Postgres2 active committers (12mo)
About
masume is a terminal-based database client aimed at users who prefer keyboard-driven workflows and want a single tool for exploring, querying, and editing data across many database systems. It...
Community Ratings
No ratings yetNew this week
Read recap →Weekly Recap — Oct 9, 2026 – Oct 16, 2026Oct 16, 2026
Features
- database browser
- SQL editor with completion
- query builder
- query history and saved queries
- result grid with sorting and filtering
- staged row editing
- transactions
- CSV and JSON import/export
- dump and restore
- notebooks with charts and prose cells
Details
- Last Updated
- Oct 22, 2026
- Created
- Aug 30, 2026
- Install Methods
- package-managerbinarysource
- Requirements
- Go 1.27 or later
- Authentication
- local
- API
- REST
- Backup & Export
- native-exportdatabase-dumpfile-backupapi-export
- Privacy & Independence
- Cloud: OptionalOffline Capable
- User Model
- Multi-User
- Deployment
Deployment: Docker Compose ✓10 Containers — heavy hosting footprintRuns as 10 containers
Run masume with Docker Compose
Compose file from the masume project repository.
10 services · database: postgres · infra: postgres, mysql, redis, mongo · 4 unclassified (server, clickhouse-server, cassandra, libsql-server)
no resource limits declared
compose.yaml · @ 84b292d · scanned Sep 23, 2026
# The database servers for the integration tests. No Go code depends on this file. The tests
# read a connection URL from the environment and connect like any other client.
#
# `docker compose up -d --wait` returns only after every health check passes. So the tests
# never run against a server that is still starting.
#
# The ports are not the default ones, so these containers do not conflict with a local
# server. Each one binds 127.0.0.1, because these servers contain no real data and one of
# them has no password.
name: masume-test
services:
postgres:
image: ${MASUME_TEST_POSTGRES_IMAGE:-postgres:18-alpine}
environment:
POSTGRES_PASSWORD: secret
POSTGRES_DB: shop
# pg_stat_statements only counts if the server loads it before it accepts a
# connection, so the dashboard has nothing to draw without this.
command: ["postgres", "-c", "shared_preload_libraries=pg_stat_statements"]
ports:
- "127.0.0.1:55432:5432"
# tmpfs, because a test database is discarded and never needs to survive a restart.
# Postgres 18 keeps its data in a subdirectory of this mount.
tmpfs:
- /var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres -d shop"]
interval: 1s
timeout: 5s
retries: 60
mysql:
image: ${MASUME_TEST_MYSQL_IMAGE:-mysql:8.4}
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: shop
ports:
- "127.0.0.1:55306:3306"
tmpfs:
- /var/lib/mysql
healthcheck:
# MariaDB 11 ships mariadb-admin and no longer ships mysqladmin, so both are tried.
test: ["CMD-SHELL", "mysqladmin ping -h 127.0.0.1 -psecret || mariadb-admin ping -h 127.0.0.1 -psecret"]
interval: 1s
timeout: 5s
retries: 120
# The image has no variable for a database, so the health check creates one. A check runs
# until it passes, and the tests start only after it has. The data stays in the container
# instead of a tmpfs, because the server writes it as a user of its own.
sqlserver:
image: ${MASUME_TEST_SQLSERVER_IMAGE:-mcr.microsoft.com/mssql/server:2022-latest}
environment:
ACCEPT_EULA: "Y"
MSSQL_SA_PASSWORD: Masume_2024
MSSQL_PID: Developer
ports:
- "127.0.0.1:55433:1433"
healthcheck:
# sqlcmd 18 needs -C to accept the certificate the server made for itself.
test: ["CMD-SHELL",
"/opt/mssql-tools18/bin/sqlcmd -C -S localhost -U sa -P \"$$MSSQL_SA_PASSWORD\"
-Q \"if db_id('shop') is null create database shop\""]
interval: 2s
timeout: 10s
retries: 90
# The image takes the user, the password and the database from the environment. The data
# stays in the container instead of a tmpfs, because the server writes it as a user of
# its own. The server needs many open files, and the image says so itself.
clickhouse:
image: ${MASUME_TEST_CLICKHOUSE_IMAGE:-clickhouse/clickhouse-server:25.8-alpine}
environment:
CLICKHOUSE_PASSWORD: Masume_2024
CLICKHOUSE_DB: shop
ports:
- "127.0.0.1:55900:9000"
ulimits:
nofile:
soft: 262144
hard: 262144
healthcheck:
test: ["CMD", "clickhouse-client", "--password", "Masume_2024", "-q", "select 1"]
interval: 1s
timeout: 5s
retries: 90
# The server takes about a minute to open its port, so the check runs for longer than the
# others. The image has no variable for a keyspace, so the check creates one, as the SQL
# Server check creates its database.
cassandra:
image: ${MASUME_TEST_CASSANDRA_IMAGE:-cassandra:5}
environment:
CASSANDRA_CLUSTER_NAME: masume
# A single node needs no more heap than this, and the image would take a quarter of
# the machine without it.
MAX_HEAP_SIZE: 512M
HEAP_NEWSIZE: 128M
ports:
- "127.0.0.1:55942:9042"
healthcheck:
test: ["CMD-SHELL",
"cqlsh -e \"create keyspace if not exists masume_test with replication =
{'class': 'SimpleStrategy', 'replication_factor': 1}\" > /dev/null"]
interval: 5s
timeout: 10s
retries: 60
redis:
image: ${MASUME_TEST_REDIS_IMAGE:-redis:8-alpine}
ports:
- "127.0.0.1:55379:6379"
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 1s
timeout: 5s
retries: 60
# The libSQL server of Turso. The image ships no HTTP client, so the check opens the port
# with bash and reads the status line of the health endpoint.
libsql:
image: ${MASUME_TEST_LIBSQL_IMAGE:-ghcr.io/tursodatabase/libsql-server:latest}
ports:
- "127.0.0.1:55480:8080"
healthcheck:
test: ["CMD", "bash", "-c",
"exec 3<>/dev/tcp/127.0.0.1/8080 && printf 'GET /health HTTP/1.0\r\n\r\n' >&3
&& head -1 <&3 | grep -q 200"]
interval: 1s
timeout: 5s
retries: 60
mongo:
image: ${MASUME_TEST_MONGO_IMAGE:-mongo:8}
ports:
- "127.0.0.1:55017:27017"
tmpfs:
- /data/db
healthcheck:
test: ["CMD", "mongosh", "--quiet", "--eval", "db.adminCommand('ping')"]
interval: 1s
timeout: 5s
retries: 60
# A second MongoDB with authentication turned on. A hosted deployment always has it, and
# the client behaves differently there. The server accepts a ping from anyone and refuses
# every other command, so a connection check must use one of the accepted commands.
mongo-auth:
image: ${MASUME_TEST_MONGO_IMAGE:-mongo:8}
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: secret
MONGO_INITDB_DATABASE: shop
ports:
- "127.0.0.1:55018:27017"
tmpfs:
- /data/db
# The image starts a server on the loopback address for its own setup, then restarts it
# on every address with authentication on. A ping over loopback answers on the first
# one too, so the check pings the address of the container, which only the second one
# listens on.
healthcheck:
test: ["CMD-SHELL",
"mongosh --quiet --host \"$$(hostname -i)\" -u root -p secret
--eval \"db.adminCommand('ping')\""]
interval: 1s
timeout: 5s
retries: 60
# A third MongoDB, as a replica set with one member. Transactions require a replica set.
# The server listens on the published port instead of the default one, because a replica
# set advertises the addresses of its members and the tests connect from outside the
# container.
mongo-rs:
image: ${MASUME_TEST_MONGO_IMAGE:-mongo:8}
command: ["--replSet", "rs0", "--port", "55020", "--bind_ip_all"]
ports:
- "127.0.0.1:55020:55020"
tmpfs:
- /data/db
healthcheck:
test: ["CMD-SHELL", "mongosh --quiet --port 55020 --eval \"
try { rs.status().ok } catch (e) {
rs.initiate({_id: 'rs0', members: [{_id: 0, host: 'localhost:55020'}]}).ok
}\" | grep -q 1"]
interval: 2s
timeout: 10s
retries: 60
Track your self-hosted stack
Bookmark software to try, rate tools you've used, and keep your collection in one place.
Metadata extracted from README on Sep 28, 2026
Related Software
Langflow
155.9k
Langflow is a platform for building and deploying AI-powered agents and workflows with a visual builder, API deployment, and MCP server support.
Low Code DevelopmentAutomation ToolsModel Context Protocol+2
11 Containers
Context7
63.5k
Context7 provides up-to-date, version-specific library documentation and code examples for LLM prompts via a CLI skill flow or MCP server.
Model Context ProtocolArtificial IntelligencePermissive License+2
oh-my-pi
36.3k
A coding agent with the IDE wired in.
AI Coding AssistantAI AgentsModel Context Protocol+1
2 Containers
honcho
7.7k
Honcho is a memory infrastructure service for building stateful agents that store, reason over, and query changing relationships and session context over time.
AI AgentsAI RAG SystemsAI Tooling+1
4 Containers
openclaude
34.1k
OpenClaude is an open-source terminal-first coding agent CLI for cloud and local model providers.
AI Coding AssistantAI AgentsAI Tooling+1
OpenSandbox
16.1k
OpenSandbox is a platform for running AI agents in isolated sandboxes on local machines or Kubernetes clusters.
AI AgentsAI ToolingSecret Management+1
2 Containers
LLM Harbor
3.2k
Harbor is a CLI and companion app for spinning up and managing a local LLM stack with pre-wired services like Open WebUI, llama.cpp, Ollama, vLLM, SearXNG, Speaches, and ComfyUI.
Artificial IntelligenceLocal LLMsAI Tooling+5
Kong
44.3k
Kong Gateway is a cloud-native API, LLM, and MCP gateway for proxying, routing, load balancing, authentication, and plugin-based traffic control.
API ManagementArtificial IntelligencePermissive License+3
2 ContainersOpen Core
mastra
29.0k
Mastra is a TypeScript framework for building AI-powered applications, agents, workflows, and MCP servers.
Artificial IntelligenceAI AgentsAI Tooling+4
2 ContainersOpen CoreNot FOSS
flue
8.5k
Flue is a TypeScript framework for building autonomous agents with a programmable harness, tools, skills, sandboxes, and deployment options.
AI AgentsAutomation ToolsAI Tooling+1
onecli
3.6k
OneCLI is an open-source gateway that sits between AI agents and external services to inject and manage API credentials securely.
AI AgentsSecret ManagementModel Context Protocol+1
2 Containers
ollaya
1.4k
Ollaya runs open decision models locally and provides Ollama-like CLI, daemon, and API access for model serving.
Artificial IntelligenceLocal LLMsInference Serving+2