AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
Crawler Summary
A TUI for CrewAI crewui A $1 terminal UI for a sequential $1 pipeline. You build a Crew; crewui renders it — a sidebar task tracker, a live agent-output stream, a pipeline log, and a token/cost summary — and, when a task asks for human review, routes the feedback prompt to an input box instead of a blocking terminal input(). crewui is a presentation layer and nothing more. It reads a Crew and touches only two things beyond it: the st Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Freshness
Last checked 10/9/2026
Best For
crewui is best for crewai, multi-agent workflows where OpenClaw compatibility matters.
Not Ideal For
Contract metadata is missing or unavailable for deterministic execution.
Evidence Sources Checked
editorial-content, GITHUB REPOS, runtime-metrics, public facts pack
A TUI for CrewAI crewui A $1 terminal UI for a sequential $1 pipeline. You build a Crew; crewui renders it — a sidebar task tracker, a live agent-output stream, a pipeline log, and a token/cost summary — and, when a task asks for human review, routes the feedback prompt to an input box instead of a blocking terminal input(). crewui is a presentation layer and nothing more. It reads a Crew and touches only two things beyond it: the st
Public facts
4
Change events
1
Artifacts
0
Freshness
Oct 9, 2026
Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Oct 9, 2026
Vendor
Coolhandle01
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Capability contract not published. No trust telemetry is available yet. Last updated 10/9/2026.
Setup snapshot
Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Coolhandle01
Protocol compatibility
OpenClaw
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
5
Snippets
0
Languages
python
bash
pipx install crewui # the CLI + the demo, isolated # or, as a library in your project: pip install crewui
bash
crewui demo # drives a scripted three-phase pipeline in the TUI crewui demo --dry-run # render the layout without walking the pipeline
python
from crewui import CrewAIPipelineTUI
CrewAIPipelineTUI(
crew=build_my_crew(), # any sequential crewai.Crew
record_prefix="myapp", # log records under this name render in the agent pane
pipeline_name="My Pipeline", # sidebar title
).run()python
class MyTUI(CrewAIPipelineTUI):
CSS_PATH = "my_app.tcss"bash
python -m venv .venv && . .venv/bin/activate pip install -e ".[dev]" ruff check . mypy pylint crewui pytest --cov=crewui --cov-branch --cov-report=term-missing --cov-fail-under=95
Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB REPOS
Editorial quality
ready
A TUI for CrewAI crewui A $1 terminal UI for a sequential $1 pipeline. You build a Crew; crewui renders it — a sidebar task tracker, a live agent-output stream, a pipeline log, and a token/cost summary — and, when a task asks for human review, routes the feedback prompt to an input box instead of a blocking terminal input(). crewui is a presentation layer and nothing more. It reads a Crew and touches only two things beyond it: the st
A Textual terminal UI for a sequential
CrewAI pipeline. You build a Crew;
crewui renders it — a sidebar task tracker, a live agent-output stream, a
pipeline log, and a token/cost summary — and, when a task asks for human
review, routes the feedback prompt to an input box instead of a blocking
terminal input().
crewui is a presentation layer and nothing more. It reads a Crew and touches
only two things beyond it: the step/task callback contract and, for human
review, one semi-internal crewai provider hook. Everything application-specific
— where a run id is recorded, how run metrics are computed and priced — is
injected through callbacks, so the package never reaches up into your app.
pipx install crewui # the CLI + the demo, isolated
# or, as a library in your project:
pip install crewui
See it run without writing any code or setting an API key:
crewui demo # drives a scripted three-phase pipeline in the TUI
crewui demo --dry-run # render the layout without walking the pipeline
The demo is fully offline — no LLM call, no network — so it doubles as a smoke test that the install works.
from crewui import CrewAIPipelineTUI
CrewAIPipelineTUI(
crew=build_my_crew(), # any sequential crewai.Crew
record_prefix="myapp", # log records under this name render in the agent pane
pipeline_name="My Pipeline", # sidebar title
).run()
The sidebar reads each task's display name (Task.name) and agent role straight
off crew.tasks, so wiring the crew is the whole job — there is no separate task
map to maintain.
Three optional callbacks carry everything crewui deliberately does not know:
| Callback | When it fires | Typical use |
|---|---|---|
| on_start() | worker thread, right before kickoff() | bind a run id, stamp the start time |
| on_complete(result) | right after kickoff() | persist run metrics |
| get_token_cost(input_tokens, output_tokens) | when rendering the summary | return the USD estimate to display |
A save failure in on_complete is swallowed and surfaced in the pipeline log —
persistence never takes the UI down.
CrewAIPipelineTUI ships a usable dark theme and owns it as an absolute
CSS_PATH. A subclass ships its own look by setting its own CSS_PATH:
class MyTUI(CrewAIPipelineTUI):
CSS_PATH = "my_app.tcss"
A Task(human_input=True) pauses the run for feedback. crewui opens the input
box, parks the worker thread until you submit, and feeds what you type back into
crewai's feedback loop (empty input — just Enter — means "accept"). The routing
leans on crewai.core.providers.human_input, a semi-internal API isolated to a
single factory in crewui/app.py so there is one place to fix if it moves
between crewai versions.
crewui declares crewai>=1.15.6,<1.16.
ask_for_human_input compatibility property is back. A 1.14.5 executor
regression crashed human_input=True with
'AgentExecutor' object has no attribute 'ask_for_human_input'; below the
floor, the human-review feature does not work.There is a second, separate human-input bug that a stock PyPI crewai still
carries: the feedback prompt tells the operator to review "the Final Result
above", but crewai only renders that result when verbose=True — so under a TUI
with verbose off, the operator is asked to review output that was never printed.
The downstream project this library was extracted from pins a
crewai fork that adds a
Result-for-Review panel so the referenced output is always shown. crewui does
not pin that fork — it works against stock crewai, and simply streams each
answer into the agent-output pane before the review gate opens, which is the
generic equivalent of what the fork's panel does. If you need the fork's exact
behaviour, pin it in your application, not here.
python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
ruff check .
mypy
pylint crewui
pytest --cov=crewui --cov-branch --cov-report=term-missing --cov-fail-under=95
The pure helpers in crewui/_helpers.py are unit-tested; the App itself is
driven through Textual's pilot harness in tests/test_app.py — status
transitions, the dry-run preview, the metrics block, the error path, and the
human-review gate all run against a fake offline crew.
MIT. See LICENSE.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
missing
Auth
None
Streaming
No
Data region
Unspecified
Protocol support
Requires: none
Forbidden: none
Guardrails
Operational confidence: low
curl -s "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/snapshot"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/contract"
curl -s "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Do not use if
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
The Frontend for Agents & Generative UI. React + Angular
Contract JSON
{
"contractStatus": "missing",
"authModes": [],
"requires": [],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": null,
"outputSchemaRef": null,
"dataRegion": null,
"contractUpdatedAt": null,
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/snapshot",
"contractUrl": "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/contract",
"trustUrl": "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/trust"
},
"curlExamples": [
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/snapshot\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/contract\"",
"curl -s \"https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"OPENCLEW"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_REPOS",
"generatedAt": "2026-10-10T03:51:59.196Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "OPENCLEW",
"type": "protocol",
"support": "unknown",
"confidenceSource": "profile",
"notes": "Listed on profile"
},
{
"key": "crewai",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "multi-agent",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:crewai|supported|profile capability:multi-agent|supported|profile"
}Facts JSON
[
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Coolhandle01",
"href": "https://github.com/coolhandle01/crewui",
"sourceUrl": "https://github.com/coolhandle01/crewui",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-09T15:57:34.076Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-09T15:57:34.076Z",
"isPublic": true
},
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/crewai-coolhandle01-crewui/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub · GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to crewui and adjacent AI workflows.