-
Notifications
You must be signed in to change notification settings - Fork 158
Description
Problem
The current setup process for Engram is too fragmented and manual. According to the README.md, a user must manually handle binary placement, ensure SQLite/FTS5 compatibility, configure environment variables, and manually edit the claude_desktop_config.json for MCP integration.
This manual approach creates a high barrier to entry and increases the surface area for configuration errors across different Operating Systems. In the fast-paced AI agent ecosystem, users expect a "zero-config" experience where the tool is ready to use immediately after a single interaction.
Proposed solution
I propose implementing a Universal Installation Script (the industry standard curl | sh) that abstracts all the complexity currently detailed in the documentation. Since Engram is built in Go, we should leverage its portability to deliver a fully configured environment in one step.
The script should automate the following workflow:
- System Detection: Automatically identify the OS (
GOOS) and Architecture (GOARCH) to pull the correct pre-compiled binary from GitHub Releases. - Automatic Binary Placement: Move the binary to the user's
$PATH(e.g.,/usr/local/bin) and set execution permissions. - Zero-Config Database: Use
go:embedwithin the Go source to include SQL migrations. The first run of the binary should automatically initialize the SQLite DB with FTS5 support without manual SQL execution. - MCP Integration: Automatically detect the installation path of Claude Desktop and inject the Engram MCP server configuration into the
claude_desktop_config.jsonfile. - Directory Bootstrapping: Create necessary persistence directories (e.g.,
~/.engram) and set default configuration values so the user doesn't have to touch.envor.jsonfiles manually.
Target User Experience:
curl -sSL https://get-engram.sh | sh
After this single command, the user should be able to open Claude Desktop and start using Engram immediately.
Alternatives considered
go install: This requires the user to have the Go SDK (toolchain) installed and configured, which is an unnecessary hurdle for non-Go developers.- Docker: While portable, it adds a heavy dependency layer (Docker Desktop) that isn't ideal for a lightweight local CLI tool meant to run alongside desktop agents.
- Manual Documentation: Maintaining exhaustive manual steps for every OS is difficult to scale and prone to becoming outdated, leading to "it doesn't work on my machine" issues.