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.
# Add to your Claude Code skills
git clone https://github.com/prime-radiant-inc/evenerLast scanned: 8/19/2026
{
"issues": [
{
"file": "README.md",
"line": 32,
"type": "remote-install",
"message": "Install command (remote install script piped to a shell — review the source before running): \"curl -fsSL https://raw.githubusercontent.com/prime-radiant-inc/evener/main/insta\"",
"severity": "low"
},
{
"file": "docs/skills/tool-fluency/SKILL.md",
"line": 98,
"type": "secret-exfiltration",
"message": "Instruction appears to send credentials/secrets to an external endpoint",
"severity": "medium"
}
],
"status": "PASSED",
"scannedAt": "2026-08-19T04:36:07.500Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}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 100 GitHub stars.
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.
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).
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.
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.
No comments yet. Be the first to share your thoughts!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
A non-interactive coding agent. Give it a prompt, it does the work.
Evener uses the LLM's native tool-calling to read files, write files, run commands, and search code in a loop until the work is complete. It supports OpenAI, Anthropic, and Google models.
For how the code is organized — modules, layout, and the build workspace — see docs/architecture.md. For the runtime contracts subagents, plugins, hooks, and helpers operate under (capability policy, lifecycle hooks, helper isolation, lineage), see docs/subagent-runtime-contracts.md; for background jobs and the job-control tools, see docs/job-control.md. To confine a session's file, process, and network access with --sandbox, see docs/sandboxing.md.
make build
Build the standalone one-shot client (no agent loop):
make build-llmcall
Build the multi-session web orchestrator:
make build-hub
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 release installer downloads the matching GitHub release archive, installs
evener, evener-hub, evener-tui, evener-doctor, and evener-migrate
under ~/.local/share/evener/bin, and symlinks them into ~/.local/bin.
Install a specific tagged release:
curl -fsSL https://raw.githubusercontent.com/prime-radiant-inc/evener/main/install.sh | env EVENER_INSTALL_VERSION=v1.2.3 sh
Install the latest successful build from main:
curl -fsSL https://raw.githubusercontent.com/prime-radiant-inc/evener/main/install.sh | env EVENER_INSTALL_VERSION=snapshot sh
Override the install prefix, using sudo for system-owned paths:
curl -fsSL https://raw.githubusercontent.com/prime-radiant-inc/evener/main/install.sh | sudo env PREFIX=/usr/local sh
From a source checkout:
make install
This builds evener, evener-hub, evener-tui, evener-doctor, and
evener-migrate, installs the binaries under ~/.local/share/evener/bin, and
symlinks them into ~/.local/bin. make install-home is an alias for the
same layout.
System-style install:
sudo make install-system
This uses the same layout under /usr/local by default. Override PREFIX to
stage elsewhere.
The installer only installs binaries and symlinks. Runtime/config directories are created by Evener when the relevant binary runs.
Verify the installed commands with:
evener --version
evener-tui --help
evener-doctor --help
Upgrade installed binaries manually:
evener upgrade
evener upgrade follows the binary's install channel: release builds upgrade to
the latest release, and snapshot builds upgrade to the latest successful
main build. You can override the target with evener upgrade release,
evener upgrade snapshot, or a tagged version such as evener upgrade v1.2.3.
The TUI and web UI also expose a manual /upgrade command that calls through
the hub and uses the same channel tracking.
On first use, Evener creates:
~/.evener/run for live daemon rendezvous files.~/.evener/auth-token for the local Hub/TUI bearer token.${XDG_STATE_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:-~/.config}/evener/skills for standalone user skills.${XDG_CONFIG_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 ~/.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.
Provider credentials are not created by install. Configure them through the Hub
or TUI credentials UI, ~/.evener/credentials.toml, provider environment
variables such as OPENAI_API_KEY, or OpenAI OAuth. See
docs/environment.md for the complete environment variable
reference.
Evener was previously named Serf. If you have an existing Serf install, run
evener-migrate once, before your first Evener launch:
evener-migrate
It moves ~/.serf to ~/.evener, ${XDG_CONFIG_HOME:-~/.config}/serf to
.../evener, ${XDG_STATE_HOME:-~/.local/state}/serf to .../evener, and
any per-project .serf directory (in the current directory or a Git
ancestor) to .evener. It refuses to overwrite a destination that already
exists, so it's safe to run more than once. Pass --dry-run to preview the
moves first, or --verbose to see every path it checked.
Re-running it is also how you repair a machine that migrated before a fix
landed: after moving each root (or finding it already moved), evener-migrate
walks the destination and rewrites any leftover absolute references to the
old serf path it finds inside text files there — for example a plugin
marketplace registry that still points git pull at
.../config/serf/plugins/marketplaces/<name>. It skips binaries and
anything inside a Git working tree (a plugin marketplace clone, or a nested
project checkout), so it's safe to run against a live install; files with
nothing to rewrite are left untouched.
If you skip this, the first Evener binary you run creates a fresh, empty
~/.evener (and XDG config/state directories) — and once that empty
directory exists, evener-migrate treats it as already migrated and skips
it, leaving your old Serf data stranded with no further warning. To prevent
that, Evener refuses to start when it finds a legacy Serf directory with no
matching Evener directory yet, and its error names the path and points back
to evener-migrate.
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
For a shell command that must outlive the current Evener session, use detached mode. Detached commands are not jobs; redirect their own logs when needed:
{"command":"long-task > /tmp/long-task.log 2>&1","mode":"detached"}
This repo also includes llmcall, a minimal CLI wrapper around the unified llm library for single “throwaway” calls.
Properties:
tool_choice=none). If the model returns tool calls, llmcall fails.--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_PROVIDERLLM_MODEL or EVENER_MODELEvener 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.
See docs/environment.md for the complete list. Common variables:
| Variable | Description |
|---|---|
EVENER_MODEL |
Default model as provider/model (used when --model is omitted) |
EVENER_REASONING_EFFORT |
Default reasoning effort |
EVENER_PROVIDERS_CONFIG |
Path to providers.toml |
OPENAI_API_KEY |
OpenAI API key |
ANTHROPIC_API_KEY |
Anthropic API key |
GEMINI_API_KEY |
Google Gemini API key |
OPENROUTER_API_KEY |
OpenRouter API key |
OLLAMA_BASE_URL |
Ollama base URL (default http://localhost:11434/v1) |
OLLAMA_HOST |
Ollama host (Ollama's canonical env var; used if OLLAMA_BASE_URL is unset) |
OLLAMA_API_KEY |
Optional API key for authenticated Ollama proxies / Ollama Cloud |
| Flag | Description |
|---|---|
--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 |
--verbose |
Emit 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-last |
Resume the most recent session |
--list-sessions |
List saved sessions and exit |
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