Getme — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Getme (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
<div align="center"> <img src="https://raw.githubusercontent.com/AatirNadim/getMe/main/getme-landing/public/extended-logo-rounded.png" alt="getMe Logo" style="width: 400px; max-width: 100%;"/>
<br/>
<div><strong>A High-Performance Key-Value Store</strong></div> <br/>
</div>
<!-- --- -->
<!-- --- -->
getMe is a persistent, embeddable key-value store written in Go. It is inspired by the design of Bitcask and is optimized for high write throughput and low-latency reads.
It uses a log-structured storage approach, ensuring that all data is appended sequentially. It uses Unix Domain Sockets (UDS) for incredibly fast local inter-process communication, alongside several interfaces like an HTTP proxy, a CLI, and a Model Context Protocol (MCP) server for LLMs.
<!-- --- -->
This project is a monorepo containing the core storage server, multiple client interfaces, and tools.
server/README.md for architectural deep-dives.getMe server for testing and debugging.goSdk, javaSdk, jsSdk, pythonSdk) to integrate getMe into your applications.goSdk that exposes the core engine's Unix Domain Socket connection over standard HTTP routes.getMe database as tools to Large Language Models (like Claude or Cursor).Spotlight: The curated inner docs are the quickest way to understand the system end-to-end. Start withserver/README.mdfor architecture fundamentals, then explore thecliandmcp-servermodules for integrations.
<!-- --- -->
The storage engine relies on a few core principles:
<!-- --- -->
The repository ships with helper scripts to bootstrap the environment.
#### Option A: Local binaries + logging stack
Switch to the server module and run the local init script:
cd server
./init-server-local.shThis script builds the Go binary into server/dist/, prepares data/log/socket directories, and starts the Loki + Alloy + Grafana logging stack via Docker Compose before launching the server in the foreground.
Warning: Do not prefix this script with `sudo`. It will invoke elevated privileges internally where needed. Using sudo at the top level causes permission errors for local development.#### Option B: Full Docker Compose stack
From the same server directory run:
cd server
./init-server-docker.shThis ensures host directories exist, exports your UID/GID, and invokes docker compose up --build to run everything in containers.
Interact directly with the local server:
cd cli
go run . put mykey "hello world"
go run . get mykey
go run . delete mykeyIf you want standard HTTP REST endpoints instead of Unix Sockets, run the Go HTTP proxy:
cd http-proxy-go
go run main.go -port 8080This will allow you to run curl http://localhost:8080/get?key=mykey.
getMe can be used by LLM clients (like Claude Desktop) through the Model Context Protocol.
cd mcp-server
uv run getme-mcp-server(See mcp-server/README.md for configuration and integration instructions).
<!-- --- -->
To ensure no performance regressions or to stress test the database:
server). go test ./... go test -bench . ./...(Note: For heavier stress/correctness testing, look into server/tests/).
<!-- --- -->
SDKs are available across different languages. Find them in the sdks/ directory:
All SDKs interface directly with the Unix Domain Socket to provide optimal latency.
⚠️ Note on SDK Releases: SDK versioning and publishing is managed automatically via an Ephemeral Release Structure. The CI/CD pipelines autonomously orchestrate the entire release lifecycle—from creating detached commits and tagging them, to generating changelogs and pushing builds to public registries—all from a single bump-type trigger. This keeps the main branch entirely clean of meaningless version-bump commits. If you are exploring the code or contributing, do not manually bump versions in PRs. You can read more about this advanced architecture in the [SDKs README](./sdks/README.md#advanced-release--versioning-architecture).
<!-- --- -->
This project is licensed under the GNU Affero General Public License v3.0 (AGPLv3) - see the LICENSE file for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.