AI agents that know when to act and when to ask — autonomous by default, human-supervised when it counts.
Project description
Everstaff
AI agents that know when to act and when to ask — autonomous by default, human-supervised when it counts.
Everstaff is an open-source platform for running AI agents that work around the clock. Agents operate autonomously, but pause and request human approval at critical decisions. Every step is observable, every action is permissioned.
Features
Core Runtime
- Multi-LLM support — OpenAI, Anthropic, Gemini, and 100+ providers via LiteLLM
- Streaming — real-time WebSocket streaming with a built-in web UI
- Session persistence — resume any session from where it left off
- Tool permissions — fine-grained allow/deny rules with wildcard matching
Human-in-the-Loop (HITL)
- Agents pause mid-run and request human approval before critical actions
- Approve, reject, or comment directly from the web UI
- Configurable: block on every tool call, only on request, or never
- Async — agents queue HITL requests and wait without blocking other work
Multi-Agent
- Delegate subtasks to specialized child agents
- DAG-based workflow engine with parallel execution and automatic replanning
- Child agent results flow back to the parent agent transparently
Autonomous Daemon
- Schedule agents on cron, webhooks, or custom events
- Agents run unattended and escalate to humans when needed
- Per-trigger HITL channels — each trigger gets its own approval queue
Extensibility
- Skills — composable instruction modules agents load on demand
- Tools — Python functions exposed to agents with typed schemas
- Knowledge base — attach document directories for context injection
- MCP servers — connect any Model Context Protocol server
Self-Hosted
- OIDC authentication with email whitelist
- OpenTelemetry and Langfuse tracing
- S3 or local storage for session data
- Docker image included
Quick Start
pip install everstaff
mkdir my-agents && cd my-agents
everstaff init # scaffold config, agent dirs, Dockerfile, .env.example
init creates:
.agent/config.yaml # LLM models, storage, auth, HITL channels
agents/ # drop agent definitions here
skills/ # custom skills
tools/ # custom Python tools
main.py # server entry point
.env.example # API key template
Set your API key and start:
cp .env.example .env
# edit .env: ANTHROPIC_API_KEY=sk-...
python main.py
Open http://localhost:8000 — the web UI is bundled.
Docker
docker run -p 8000:8000 \
-v $(pwd)/.agent:/app/.agent \
-e ANTHROPIC_API_KEY=sk-... \
ghcr.io/your-org/everstaff
How It Works
Agents are defined in a config file. Drop one in your .agent/agents/ directory and it appears in the UI immediately.
agent_name: Code Reviewer
instructions: |
Review pull requests for bugs, security issues, and style violations.
When you find a critical issue, request human approval before proceeding.
tools: [Bash, Read, Glob, Grep]
hitl_mode: on_request # pause and ask when uncertain
autonomy:
triggers:
- type: webhook
path: /hooks/github
Documentation
Development
# Install dependencies
pip install -e ".[dev]"
# Run tests
pytest
# Start dev server (API + frontend separately)
uvicorn everstaff.server:app --reload
cd web && npm install && npm run dev
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file everstaff-0.0.7.dev0-py3-none-any.whl.
File metadata
- Download URL: everstaff-0.0.7.dev0-py3-none-any.whl
- Upload date:
- Size: 2.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
435250476cc01f0c3f4e394659e27c609915d13ab31293ca5d6b6540bdde8c1a
|
|
| MD5 |
950d656e091925eb9ca1fe5f2b7436cf
|
|
| BLAKE2b-256 |
3aebab2c970345176fa8e91bbfd98c91d3474f333f5deb30ae11e5c86065d35f
|
Provenance
The following attestation bundles were made for everstaff-0.0.7.dev0-py3-none-any.whl:
Publisher:
publish.yml on yuriiiz/everstaff
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
everstaff-0.0.7.dev0-py3-none-any.whl -
Subject digest:
435250476cc01f0c3f4e394659e27c609915d13ab31293ca5d6b6540bdde8c1a - Sigstore transparency entry: 1010247787
- Sigstore integration time:
-
Permalink:
yuriiiz/everstaff@57170cf9494f99cc3d9f1dbd222b17ae44ca9716 -
Branch / Tag:
refs/tags/v0.0.7.dev0 - Owner: https://github.com/yuriiiz
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@57170cf9494f99cc3d9f1dbd222b17ae44ca9716 -
Trigger Event:
push
-
Statement type: