Skip to content

Feat: Implement "One-Command" Universal Installation Script (Zero-Config Setup) #78

@jairandresdiazp

Description

@jairandresdiazp

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:embed within 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.json file.
  • Directory Bootstrapping: Create necessary persistence directories (e.g., ~/.engram) and set default configuration values so the user doesn't have to touch .env or .json files 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions