Etu exposes a Connect RPC API. Use the CLI tool, client packages, or call the proto services directly.
The Etu CLI is a terminal-based client for managing your journal entries from the command line. It's perfect for quick captures, scripting, and keyboard-centric workflows.
Via Homebrew (macOS/Linux):
brew tap icco/tap
brew install etuFrom source (requires Go 1.25+):
git clone https://github.com/icco/etu
cd etu
go build -o etu .The CLI requires an API key to authenticate with the Etu backend. You can configure it in two ways:
Option 1: Config file (~/.config/etu/config.json)
{
"api_key": "your-64-char-hex-api-key",
"grpc_target": "grpc.etu.natwelch.com:443"
}Option 2: Environment variables
export ETU_API_KEY="your-api-key"
export ETU_GRPC_TARGET="grpc.etu.natwelch.com:443"💡 Get your API key from Settings → API Keys
etu createCreate a new journal entry with an interactive TUI. Supports attaching images and audio files.
etu listList journal entries with optional starting datetime filter.
etu searchSearch journal entries using fuzzy search across content and tags.
etu deleteDelete a journal entry by ID.
etu timesinceOutput time elapsed since your last post (useful for scripts and prompts).
@icco/etu-protoGenerated Connect RPC client and types. Published to GitHub Packages.
Source (etu-backend)github.com/icco/etu-backend/protoGo client and generated code from the same proto definitions.
etu-backend repositoryAPI requests use an API key in the Authorization header. The backend expects the raw key (not Bearer <key>).
Authorization: <your-api-key>For user-scoped calls (notes, tags, etc.) the backend derives your user from the API key. The web app uses session cookies; the API uses the key only.
Full protocol buffer and service definitions.
Open Proto Documentation