one of the most powerful open-source agents gets a coin's creator fees as its bankroll and trades them on chain. every decision public, every trade a transaction. the floor is live: its scouts are already trading.
▶ launch trading floor❯ an open-source agent harness with a Rust core. lightweight, modular, pluggable into whatever LLM, memory or search engine you already run.
one core runs the desktop app, the browser UI, the terminal client and a Rust library. agents share a process instead of one daemon each, so 500 live agents settle at 1,393 MiB, about 25× denser than 500 separate processes. jev decides without generating prose. workflows are drafted by the agent and reviewed by you on a canvas. GPL-3.0.
102 ms cold agent turn, 476 ms nine-phase bootstrap, 42 MiB slim RSS, 1,770 KiB marginal per agent at 500, 51 MiB stripped binary with nothing enabled.
| N agents | marginal KiB | settled MiB | threads | FDs | |
|---|---|---|---|---|---|
| 50 | 1,985 | 223 | 71 | 420 | [||··········] |
| 100 | 1,866 | 356 | 123 | 820 | [|||·········] |
| 500 | 1,770 | 1,393 | 211 | 3,220 | [||||||||||||] |
| 500 × process | ~48 MiB each | ~24,000 | — | — | 25× |
./scripts/profile/library-fleet.sh --agents "50,100,500"- fixed base
- one process per agent pays the ~30–50 MiB base every time. one process for all agents pays it once.
- idle CPU
- 3 ms per 10 s at every N. idle agents cost memory, not cycles.
- threads
- 71 → 123 → 211 across 50 → 100 → 500 agents. sub-linear.
- file descr.
- 420 → 820 → 3,220. about 6.4 per agent, the one line that scales linearly.
- compression
- tinyjuice cuts what reaches the model, so a large context costs less than its raw size suggests.
| scenario | median RSS | median time |
|---|---|---|
| agent-turn cold, one turn, no delegation | 47.6 MiB | 102 ms |
| cold-phases config load, registry init, agent build, memory construction, first turn | 51.2 MiB | 476 ms |
| warmed turn same process | +0.5–1.9 MiB | vs +26–31 MiB first |
| build | features | unstripped | stripped |
|---|---|---|---|
| pure slim | none | 68.4 MiB | 51.0 MiB |
| library-minimal | skills, flows | ~81.1 MiB | ~60.4 MiB |
| default | all nine gates | 115.9 MiB | n/a |
scripts/kernel-floor.sh keeps a down-only ratchet on the dependency count so the floor doesn't creep back up. sources: library-benchmarking.md, harness-comparison-2026-07-22.md.| tag | date | assets |
|---|
- 1bm25 top-122.5% · 28 ms p50
- 2embed+jev top-162.0% · 1.5 s p50
- 3embed+jev top-366.7%
- 4app-first composio80.3% top-1
- 5needless callsbm25 26/31 → jev 1/31
NeedsConfirmation instead of executing. falls back to BM25 with no credential.- tinydocs
- documents · tinydocs-bus
- tinyvoice
- voice · tinyvoice-bus
- tinyjuice
- token compression · tinyjuice-bus
- tinyruntime
- runtime · tinyruntime-bus
- tinywallet
- wallet · tinywallet-bus
- tinymcp
- MCP servers · tinymcp-bus · 0.4.0 on main
- tinychannels
- messaging channels · tinychannels-bus
- tinyconnectors
- app connectors · tinyconnectors-bus
- node kinds
- 22 — agent calls, HTTP, code, conditions, loops, sub-workflows, approvals, more
- triggers
- schedule · app event · manual; resumes mid-run after a pause
- difference
- you describe it, the agent drafts the graph, you review and save on a canvas. not n8n wiring by hand.
- managed
- the TinyHumans route, with the OpenRouter model catalogue
- local
- Ollama · LM Studio · MLX · any OpenAI-compatible server
- agent sdk
- Claude Code or the Claude Agent SDK
- byok
- 26 providers: OpenRouter, OpenAI, Anthropic, Google, Groq, Mistral, DeepSeek, Together, Fireworks, …
- managed
- Voyage-backed route
- your own
- Voyage · OpenAI · Cohere · Ollama · OpenAI-compatible endpoint
- engine
- hosted CortexDB via TinyHumans, or your own CortexDB (endpoint + key). with neither, memory is off.
- brain
- folders, files, links, GitHub, RSS, connected apps; each agent's conversations and shared learnings
- per turn
- recalls what matters before every turn; answers with citations
- sync
- scheduled sync of folders, repos, feeds and apps into memory
- managed
- included with a subscription
- your key
- Parallel · Brave · Querit · Exa · Tavily · self-hosted SearXNG
use openhuman_embed::{Access, AgentSpec, McpServer, Provider, Runtime, Workspace}; let runtime = Runtime::builder() .workspace(Workspace::dir("/var/lib/my-product/openhuman")) .api_key("th_live_…") // the only credential in library mode .build() .await?; let reviewer = runtime.agent( AgentSpec::new("reviewer") .system_prompt("You review pull requests and never edit files.") .access(Access::readonly()) .skills_dir("./skills/review") // copied into this agent's own skills root .action_dir("/srv/checkouts/pr-42"), )?; let fixer = runtime.agent( AgentSpec::new("fixer") .provider(Provider::openai_compatible("https://api.example/v1", "sk-…").model("gpt-5")) .access(Access::full()) .mcp(McpServer::stdio("github", "gh-mcp", ["stdio"])) .action_dir("/srv/checkouts/pr-42"), )?; let review = reviewer.run("Summarise the risks in this change.").await?; let fix = fixer .turn(format!("Address these findings:\n{}", review.reply)) .send() .await?; println!("{}", fix.reply); // Continue a conversation with the same agent. let again = fixer.turn("Now run the tests.").session(&fix.session_id).send().await?; println!("{}", again.reply);
- provider
- its own LLM route: managed, local, or any OpenAI-compatible URL + key
- access
- readonly() or full(): the tier the agent runs at
- action_dir
- the working directory it may act on
- skills_dir
- copied into the agent's own skills root
- mcp
- its own MCP servers, e.g. a stdio github server
- prompt
- system prompt, sandbox, session continuation via .session(id)
- in code
- .api_key("th_…")
- headless
- OPENHUMAN_BACKEND_API_KEY
- covers
- managed inference (incl. OpenRouter catalogue), web search, embeddings, media generation, integrations, voice, jev
- desktop
- Tauri v2 + Wry — Windows, macOS, Linux
- browser
- the identical SPA: pnpm dev:app:web
- terminal
- ratatui client: crates/openhuman-tui
- library
- openhuman-embed, feature-flag pass-through, minimal-footprint recipe in library-minimal-recipe.md
brew install --cask openhumanHomebrew cask, normal signing and integrity checkssudo apt-get install -y --no-install-recommends ./OpenHuman_*_amd64.debdownload the release .deb first; arm64 on arm64 hosts. apt resolves runtime deps, avoids the AppImage Wayland / libgbm failuresyay -S openhuman-binAUR recipe lives in packages/arch/openhuman-binOpenHuman_<version>_x64_en-US.msisigned .msi from the latest release, run it.dmg · .deb · .AppImage · .msistraight from the latest release pagecurl -fsSL https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.sh | bashirm https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.ps1 | iexserved live from raw.githubusercontent.com with no separate signature. the repo itself says: prefer the native paths above.pnpm dev:app:webthe identical SPA in any browsercargo add openhuman-embedlibrary-minimal recipe: skills + flows, ~60 MiB stripped./scripts/profile/library-fleet.sh --agents "50,100,500" --target 1000 --budget-mib 2048reproduces the fleet sweepNAME
openhuman — an open-source agent harness with a Rust core: lightweight, modular, pluggable.
SYNOPSIS
openhuman [config] → agents → jev → tools → workflows → memory
DESCRIPTION
- core
- a Rust core with a desktop app, a browser UI, a terminal client and a library wrapped around it. the same core runs all four, in-process, not as a daemon the UI talks to over a socket.
- fleet
- 50, 100 and 500 live agents in one process cost 1,985, 1,866 and 1,770 KiB marginal each, settling at 223, 356 and 1,393 MiB. as separate processes the same work costs ~48 MiB per instance.
- modular
- nine cargo feature gates by default; eight loadable native modules past compile time, each with a *-bus contract crate.
- engines
- LLM, embeddings, memory and web search are all chosen by config. managed TinyHumans routes, or your own.
- jev
- a small decision model that returns calibrated probabilities over fixed options. it never writes prose. 62.0% top-1 tool pick vs 22.5% for BM25; one needless call vs 26.
- workflows
- saved, typed automation graphs on the tinyflows engine, 22 node kinds. the agent proposes, you review on a canvas and save.
LICENSE
GPL-3.0. early beta: under active development, expect rough edges. within one week of launch it was the number one trending repository on GitHub for nine days in a row.
COMPARISON
| Cowork | OpenClaw | Hermes | OpenHuman | |
|---|---|---|---|---|
| open source | proprietary | MIT | MIT | GPL |
| start | desktop+CLI | terminal | terminal | UI, minutes |
| memory | chat-scoped | plugin | self-learning | pluggable, cited |
| integrations | few | BYO | BYO | 100+ OAuth, 5k+ MCP, 90k+ skills |
| workflows | none | scripts | scripts | visual, gated |
| meetings | none | none | none | Meet/Zoom/Teams |
| channels | none | a few | a few | 15 |
from the README; products evolve, verify against each vendor.
EXAMPLES
# install the desktop app on macOS $ brew install --cask openhuman # run the identical SPA in a browser $ pnpm dev:app:web # embed the core in your own Rust process $ cargo add openhuman-embed # reproduce the fleet sweep $ ./scripts/profile/library-fleet.sh --agents "50,100,500"
SEE ALSO
docs · discussions · discord · reddit · @tinyhumansai · @senamakel (creator) · tinyflows