Minimalist AI coding companion

AI companion for focused coding.

Elph understands your repository context, calls tools natively, and asks before risky actions. It is built for focused coding sessions, not a hidden black box.

Early-stage project: Elph is still in active development, so APIs, provider behavior, and runtime details may change between releases.

Go 1.26 Bubble Tea TUI Native tool calls Approval gates

How it works

A simple loop for agentic coding.

The page should make the product obvious: start in a repo, ask for a change, review what the agent wants to do, then validate with tests.

01

Open your project

Run Elph from a repository so it can load local instructions, prompts, and session state.

02

Describe the outcome

Ask for a concrete change. Elph can inspect files, search code, keep todos, and edit precisely.

03

Approve and verify

Review shell and file mutations, then run focused tests before widening validation.

Core features

Everything is optimized for transparent coding work.

Elph keeps the feature set practical: provider adapters, a native tool loop, and runtime controls that make agent behavior inspectable.

Focused coding interface

Streaming responses, markdown rendering, keyboard-first controls, paste handling, and session logs.

Native tools

Read, Write, Edit, Grep, Glob, Bash, WebSearch, TodoList, Skill, and media reading.

Provider routing

OpenAI-compatible APIs, OpenRouter routing, and Anthropic messages through layered adapters.

Approval workflow

Risky actions are gated by explicit prompts, with session-level allow paths when appropriate.

Prompt templates

Reusable user and project prompts keep recurring requests consistent.

Memory-conscious runtime

Compacted history, capped tool output, deferred work, and lightweight git reads keep sessions responsive.

Install

Run it from source.

Elph is under active development. Use the documented make targets and review release notes before updating across provider or runtime changes.

Go 1.26 or newer
Optional tools gotestsum, golangci-lint
git clone <repository-url> Clone
cd elph Enter repo
make prepare Prepare tools
make deps Install deps
make run Launch TUI

Documentation

Know the boundaries before extending it.

The provider stack is intentionally layered. Keep protocol types, catalog behavior, and SDK adapters in their own packages when changing or adding providers.