evener

by prime-radiant-incVerified

A coding agent: give it a prompt and it reads, writes, runs commands, and searches code in a loop until the work is done, using native tool-calling across OpenAI, Anthropic, and Google models.

109
Stars
4
Forks
Go
Language
8/23/2026
Added
View on GitHubDownload ZIP

⚠️ Third-Party Software Notice

This skill is third-party open-source software developed and hosted independently on GitHub. SkillTip is an informational directory and does not control or maintain the underlying repository. Any security checks displayed are automated and limited in scope. Review the source code before installing.

Read the Terms of Service

Installation

Add to your Claude Code skills directory:

# Add to your Claude Code skills
git clone https://github.com/prime-radiant-inc/evener

Getting Started

Guides for using skills like evener.

Security Report

Verified

Last scanned: —

{
  "status": "PASSED",
  "issues": []
}

README.md

Evener

A coding agent run through a hub. The evener-hub orchestrator serves the web UI — Evener's default interactive surface — where you start sessions, watch the agent read files, run commands, and edit code, and steer it with follow-up messages. The hub tracks many concurrent sessions at once, and evener-tui gives the same hub a terminal dashboard. A non-interactive command line handles scripting and automation.

New here? docs/getting-started.md walks from install to your first session.

Evener uses the LLM's native tool-calling and supports OpenAI, Anthropic, Google, and other providers. For how the code is organized, see docs/architecture.md. For the runtime contracts that subagents, plugins, and hooks operate under, see docs/subagent-runtime-contracts.md. For background jobs, see docs/job-control.md. To confine a session's file, process, and network access with --sandbox, see docs/sandboxing.md. To build, test, and lint this repo, see docs/developing-evener/README.md — or run make help for every target with a one-line summary.

Install

Install the latest release on Linux x64 or macOS Apple silicon:

curl -fsSL https://raw.githubusercontent.com/prime-radiant-inc/evener/main/install.sh | sh

The installer verifies the release archive's SHA-256 checksum and installs evener, evener-hub, evener-tui, evener-doctor, and evener-migrate under ~/.local/share/evener/bin, symlinked into ~/.local/bin. Make sure ~/.local/bin is on your PATH.

From a source checkout:

make install

For tagged releases, snapshot builds, alternate prefixes, and a system-style install under /usr/local, see docs/getting-started.md. Verify any install with evener --version.

Upgrade evener, evener-hub, evener-tui, and evener-doctor with evener upgrade. The command follows the binary's install channel: release builds upgrade to the latest release, and snapshot builds upgrade to the latest successful main build. Pass release, snapshot, or a tag such as v1.2.3 to switch tracks. evener-migrate is not updated by evener upgrade; rerun the installer, or run make install (or sudo make install-system), to refresh it. The TUI and web UI expose the same mechanism through their /upgrade command.

On first use, Evener creates:

  • ${XDG_STATE_HOME:-$HOME/.local/state}/evener/run for live daemon rendezvous files and per-daemon logs.
  • ${XDG_STATE_HOME:-$HOME/.local/state}/evener/auth-token for the local hub/TUI bearer token.
  • ${XDG_STATE_HOME:-$HOME/.local/state}/evener/projects/<project-id>/ for saved per-project session state. The project ID is readable (derived from the canonical project path) and ends with a 10-character base62 suffix.
  • ${XDG_CONFIG_HOME:-$HOME/.config}/evener/skills for standalone user skills.
  • ${XDG_CONFIG_HOME:-$HOME/.config}/evener/plugins for user plugins.

The user skill and plugin directories are extension roots; installing Evener does not automatically enable their contents. Add standalone skill paths to skills_dirs and plugin paths to plugin_dirs in ${XDG_CONFIG_HOME:-$HOME/.config}/evener/launch.toml, or pass them with the corresponding CLI flags for a single run. Plugin-contained skills live under that plugin and become available through the plugin path.

Install does not create provider credentials. Hosted/auth-required providers can be configured through the hub or TUI credentials UI, supported provider environment variables such as OPENAI_API_KEY, or OpenAI OAuth. Local/auth-none providers such as Ollama may not need credentials. The default credentials file is ${XDG_CONFIG_HOME:-$HOME/.config}/evener/credentials.toml; when EVENER_PROVIDERS_CONFIG points to a custom providers.toml, the credentials file is beside it. See docs/developing-evener/environment.md for the complete environment variable reference.

Quick start: the hub and web UI

Start the hub:

evener-hub

The hub listens on 127.0.0.1:9180 and prints an authorization URL at startup:

[hub] auth URL (visit once per browser): http://127.0.0.1:9180/auth?token=...

Open that URL. It sets a cookie that authorizes the browser; later visits to http://127.0.0.1:9180 need no token. For a hosted provider that requires a credential, add it at http://127.0.0.1:9180/credentials; local/auth-none providers such as Ollama can skip this step. Then open http://127.0.0.1:9180/new, type a prompt, pick a model and working directory, and click Start. The full walkthrough — resume, forking, and search included — lives in docs/getting-started.md.

Evener Hub (Web Orchestrator)

evener-hub runs alongside evener serve daemons and gives you a single browser-based interface for many concurrent sessions.

Build & run

From a source checkout, run make build-hub, then ./evener-hub (default 127.0.0.1:9180). Installed users can run evener-hub from PATH.

What's there

  • Sidebar with a Live section (running sessions, excluding archived ones, sorted by who needs you) and a Projects section (sessions grouped by canonical project identity, not raw working-directory strings; subagents are indented under the session that spawned them).
  • Workspace pane with a two-tier conversation: messages (user pills + assistant body) at the primary reading tier, tool calls and diffs as muted margin annotations.
  • New session at /new — prompt-first, pick model and working dir, click Start.
  • Fork from here: every message you sent carries a fork button. Click it to branch the session at that point; the original message lands in the composer for you to edit, and the original line is preserved as a sibling fork.
  • Aside: /aside (TUI) or the Aside: fork to side thread palette command (web UI) forks the current session at its tip into a side thread with the same permissions and config — for asking a distracting question without derailing the main session.
  • Transparent resume: click any closed session, type, send. The daemon spawns from where it left off — same identity throughout.
  • ⌘K search (Ctrl+K on Linux) across live + past sessions.
  • Settings for theme (light/dark/system), notification preferences, and provider and MCP configuration.

Configuration and operation

The hub uses layered launch configuration, loopback defaults, capability-token authentication, and XDG state/config roots. For the authoritative configuration, credential, smoke-check, remote-operation, and deploy guidance, see docs/evener-hub.md and docs/evener-hub-remote-operations.md.

Design spec, plans, and notes live under docs/superpowers/.

Evener TUI (Terminal User Interface)

evener-tui is a hub-backed terminal dashboard for Evener sessions. It connects to evener-hub, lists live and saved sessions, lets you drill into a transcript, and sends session actions through the hub API.

Build

make build-tui

Usage

Start the dashboard from an installed PATH command:

evener-tui

After make build-tui in a source checkout, use ./evener-tui instead.

By default evener-tui connects to http://127.0.0.1:9180. If no local hub is running, it starts evener-hub automatically and waits for an authenticated AppWire /rpc connection. When --state-dir is explicit, it also checks /api/health for state-environment compatibility.

Connect to a specific hub:

evener-tui --hub-addr http://127.0.0.1:9180

Use a specific hub binary or disable auto-start:

evener-tui --hub-bin /path/to/evener-hub
evener-tui --no-auto-start-hub

Flags

FlagDescription
--hub-addr <url>Hub URL or host:port (default: 127.0.0.1:9180)
--hub-bin <path>Hub binary to auto-start when the local hub is down
--no-auto-start-hubFail instead of starting a missing local hub
--auth-token <token>Hub capability token (overrides the token file and env var)
--state-dir <path>Override the Evener state directory
--log-file <path>Write auto-started hub logs to this file
--debugDisable the alternate screen

Features

  • Dashboard: Browse live and saved sessions from the hub roster and past-session index
  • Session drill-in: Open a session transcript from the dashboard
  • Hub actions: Send input, view tasks/details, interrupt, compact, clear, and switch models through hub endpoints
  • Streaming: Follow session AppWire streams through the hub
  • Markdown rendering: Format-aware display of assistant messages
  • Tool inspection: Collapse/expand tool calls and view arguments

Non-interactive CLI

Use the evener command directly for one-shot, non-interactive runs — scripts, CI, and pipelines where no human steers the session. For interactive work, prefer the hub and web UI above.

evener --model <provider/model> [flags] <prompt>

The prompt can be passed as arguments or piped via stdin:

# Prompt as arguments
evener --model openai/gpt-5.2 "add input validation to the signup handler"

# Prompt piped via stdin
echo "refactor auth to use JWT" | evener --model anthropic/claude-opus-4-6

Shell commands run by the agent normally end with their Evener session. When a command must outlive the session, the agent passes mode: "detached" to its shell tool and redirects the command's own logs:

{"command":"long-task > /tmp/long-task.log 2>&1","mode":"detached"}

Provider and model

Evener takes a provider-qualified model in one value: --model <provider/model>. Providers: openai, anthropic, google, minimax, openrouter, openrouter-anthropic, kimi, glm, ollama.

Use --model or set EVENER_MODEL to the same provider/model format.

For local models via Ollama, see docs/ollama.md.

Environment variables

See docs/developing-evener/environment.md for the complete list. Common variables:

VariableDescription
EVENER_MODELDefault model as provider/model (used when --model is omitted)
EVENER_REASONING_EFFORTDefault reasoning effort
EVENER_PROVIDERS_CONFIGPath to providers.toml
OPENAI_API_KEYOpenAI API key
ANTHROPIC_API_KEYAnthropic API key
GEMINI_API_KEYGoogle Gemini API key
OPENROUTER_API_KEYOpenRouter API key
OLLAMA_BASE_URLOllama base URL (default http://localhost:11434/v1)
OLLAMA_HOSTOllama host (Ollama's canonical env var; used if OLLAMA_BASE_URL is unset)
OLLAMA_API_KEYOptional API key for authenticated Ollama proxies / Ollama Cloud

Flags

FlagDescription
--model <provider/model>LLM model identifier (required unless resuming an existing session)
--dir <path>Working directory (default: current directory)
--output-schema <json>Inline JSON Schema replacing the default communicate.output schema
--verboseEmit NDJSON events to stderr (replaces human-readable output)
--resume <id>Resume a previous session by ID
--resume-with <id>Start a new prompt using a previous session's context
--resume-lastResume the most recent session
--list-sessionsList saved sessions and exit

Structured output

Pass --output-schema <json> to replace the communicate tool's output field schema with your own. The flag takes an inline JSON string (file paths are not supported).

evener --model openai/gpt-5.2 \
  --output-schema '{"type":"object","properties":{"plan":{"type":"string"}},"required":["plan"],"additionalProperties":false}' \
  "Draft a one-paragraph plan for fixing the flaky test."

The supplied schema replaces output wholesale — the default message/data/artifacts shape is removed. Provider-specific caveats:

  • OpenAI rewrites additionalProperties: true to false and expands required to cover every property in the schema (strict mode).
  • Anthropic strips anyOf/oneOf/allOf at the top level of the output schema.
  • Gemini drops additionalProperties during sanitization.

Output

stdout always receives only the final result text.

stderr shows progress in one of two modes:

Default (human-readable):

[model] gpt-5.2 (openai)
[tool] write_file {"file_path":"/tmp/test.txt","content":"he...
[tool] write_file: done
[assistant] I've created the file for you.
[thinking] (247 chars)
[usage] in=1234 out=567 total=1801

--verbose (NDJSON): Each event is a JSON object on one line, suitable for piping to jq or log aggregation:

evener --model openai/gpt-5.2 --verbose "fix the bug" 2>events.ndjson

NDJSON events include: SESSION_START, ASSISTANT_TEXT_END (with usage, reasoning, finish_reason), TOOL_CALL_START (with arguments), TOOL_CALL_END, WARNING, ERROR, and others.

Session persistence

Evener auto-saves session state under ${XDG_STATE_HOME:-$HOME/.local/state}/evener/projects/<project-id>/sessions/ after each assistant turn. This enables resuming interrupted work.

Project IDs are shared by a repository's main checkout and linked worktrees: they aggregate into the same project bucket. A distinct clone has a different canonical path and therefore gets a distinct project ID and state bucket.

Session IDs are 22-character UUIDv7 base62 payloads. Domain-specific IDs that retain a prefix keep that prefix outside the payload (for example, job_ IDs).

The identifier format change is a clean break. Evener does not migrate or delete inert old project/session state; remove obsolete state manually after checking that it is no longer needed. Installation IDs are the sole automatic legacy replacement: an invalid stored installation ID is replaced when Evener next needs one.

# List saved sessions
evener --list-sessions

# Resume the most recent session
evener --resume-last

# Resume a specific session
evener --resume 02wLIRxqmq3AUo6vl2OW37

# New prompt, but carry forward a previous session's conversation context
evener --model openai/gpt-5.2 --resume-with 02wLIRxqmq3AUo6vl2OW37 "now add tests"

Resume reuses the original session's provider and model; override them with --model <provider/model>.

llmcall (One-Shot LLM Client)

This repo also includes llmcall, a minimal CLI wrapper around the unified llm library for single “throwaway” calls.

Properties:

  • Exactly one LLM call (no agent loop).
  • Tool calls are forbidden (tool_choice=none). If the model returns tool calls, llmcall fails.
  • No system prompt by default. You can optionally provide one, or force-disable with --no-system.

Build:

make build-llmcall

Examples:

./llmcall --provider openai --model gpt-5-mini-2025-08-07 "Write a haiku about build pipelines."

# JSON mode: parses and re-prints as JSON (fails if output isn't valid JSON)
echo 'Return JSON: {"ok": true}' | ./llmcall --provider openai --model gpt-5-mini-2025-08-07 --format json

# JSON Schema mode: enforces + validates structured output
./llmcall --provider openai --model gpt-5-mini-2025-08-07 --schema /path/to/schema.json "Return an object matching the schema."

llmcall resolves provider/model from env if omitted:

  • LLM_PROVIDER or EVENER_PROVIDER
  • LLM_MODEL or EVENER_MODEL

Acknowledgments

Evener is forked from Kilroy by Dan Shapiro, originally built as part of the StrongDM Attractor project. The unified LLM client, provider adapters, and agentic tool-calling loop all trace their lineage to that work. Kilroy is licensed under the MIT License (see LICENSE-kilroy).

Frequently Asked Questions

What is evener?

evener is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by prime-radiant-inc. A coding agent: give it a prompt and it reads, writes, runs commands, and searches code in a loop until the work is done, using native tool-calling across OpenAI, Anthropic, and Google models. It has 109 GitHub stars.

Is evener safe to use?

Yes. evener passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install evener?

Clone the repository with "git clone https://github.com/prime-radiant-inc/evener" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is evener written in?

evener is primarily written in Go. It is open-source under prime-radiant-inc on GitHub, so you can review or fork the full source.

Are there alternatives to evener?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh evener against similar tools.

Comments (0)

No comments yet. Be the first to share your thoughts!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI Agents
View details

Developers Also Liked

Based on votes and bookmarks from developers who liked this skill

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP Serversapisai-tools
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details