Try describing what you need:

masume logo

masume

★ 107
Apache 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 yet

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 logo

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
Details
Context7 logo

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
Details
oh-my-pi logo

oh-my-pi

36.3k
A coding agent with the IDE wired in.
AI Coding AssistantAI AgentsModel Context Protocol+1
2 Containers
Details
honcho logo

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
Details
openclaude logo

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
Details
OpenSandbox logo

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
Details
LLM Harbor logo

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
Details
Kong logo

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
Details
mastra logo

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
Details
flue logo

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
Details
onecli logo

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
Details
ollaya logo

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
Details