Skip to content

Getting Started

Eshan Roy edited this page Jun 16, 2026 · 2 revisions

Getting Started

Installation

macOS (Homebrew)

brew install eshanized/tap/m31a

Linux and macOS (one-liner)

curl -fsSL https://raw.githubusercontent.com/eshanized/M31A/main/install.sh | bash

From Source (any OS)

git clone https://github.com/eshanized/M31A.git
cd M31A
CGO_ENABLED=0 go build -o m31a ./cmd/m31a

Using the Makefile

make build          # optimized binary for current platform
make install        # install to $GOBIN
make dev            # build and run immediately

First Run

On first launch, M31A prompts for your OpenRouter or Zen API key. Keys are stored in the OS keychain and are never written to disk in plaintext.

$ m31a
 ╭──────────────────────────────────────────╮
 │  Initialize → Discuss → Plan → Execute   │
 │            → Verify  → Ship              │
 ╰──────────────────────────────────────────╯

 > refactor the auth middleware to use JWT with
   RS256, keep backward compat for 30 days

Platform Support

Platform Architectures Keychain Backend
Linux amd64, arm64 D-Bus Secret Service / pass CLI fallback
macOS amd64, arm64 /usr/bin/security (Keychain Access)
Windows amd64, arm64 Credential Manager

Cross-compiled binaries are available via make cross or GitHub Releases.

Requirements

  • Go 1.25+ (only needed when building from source)
  • A POSIX shell (bash, zsh, fish, etc.)
  • Git (for commit/rollback/ship phases)
  • An API key for OpenRouter or Zen

Quick Tour

The REPL

/help          list all commands
/workflow      kick off the six-phase flow
/model         open the model selector (fuzzy search)
/provider      switch provider
/ledger stats  show your cross-session ledger
/rollback      show the commit chain; --hard to reset
/compress      trigger AutoDream manually

Key Bindings

Key Action
Enter Send message in REPL
Ctrl+C Cancel active stream; second press exits
Esc Close model selector / modals
y / a / n / e Permission modal: allow / allow always / deny / exit
Ctrl+P Open command palette

See Slash Commands and Keybindings for full references.

Directory Structure

M31A creates the following directories:

Path Purpose
~/.m31a/config.toml User configuration (override with M31A_CONFIG)
~/.m31a/LEDGER.md Cross-session learning ledger
~/.m31a/recent_models.json Recent model history and favorites
<project>/.m31a/session.json Current project session
<project>/.m31a/messages.json Conversation message history
<project>/.m31a/backups/ Auto-backups from file edits

Next Steps

Clone this wiki locally