Summary
Design an interactive terminal (REPL-style) experience for the openhuman CLI binary so contributors and operators can exercise core flows without the desktop app—with first-class support for skills (invoke, inspect state, errors, sandbox boundaries) and other domains as needed.
Problem
Today, validating behavior often means running the full stack (Tauri + sidecar + UI) or crafting JSON-RPC / HTTP calls by hand. That is slow for iteration, especially for skills (QuickJS runtime, tool wiring, registry, workspace paths). A lightweight, terminal-first loop would speed up:
- Skill authors and core developers debugging skill execution
- QA-style smoke checks of channel/agent/config flows from a shell
- Documentation and onboarding (“paste these commands in a REPL to see X”)
Constraints to call out in design: no accidental secret logging, same business rules as RPC where applicable (avoid a second implementation of skill policy), and clear scope (REPL for dev/test vs shipping to end users).
Solution (optional)
Treat this issue as design-first; implementation can follow in a separate PR.
Possible directions (not prescriptive):
openhuman repl (or openhuman shell) subcommand that starts a read-eval-print loop with commands like skill list, skill run <id> …, rpc call <method> …, config show, help.
- Backing the REPL with existing internal APIs (call into
openhuman::* / same paths the JSON-RPC server uses) so behavior matches production.
- Optional scriptable mode (
--eval '…', stdin batch) for CI or quick one-liners.
- Heavy debug logging behind a flag, grep-friendly prefixes, redaction rules aligned with project norms.
Tradeoffs: REPL surface area vs maintenance; ensuring feature parity with RPC over time; Windows terminal UX.
Acceptance criteria
Related
- Core binary and library: repo root
Cargo.toml, src/main.rs / openhuman_core
- Skills runtime:
src/openhuman/skills/
- JSON-RPC / CLI patterns:
core_server, src/core/cli.rs, controller registry
Summary
Design an interactive terminal (REPL-style) experience for the
openhumanCLI binary so contributors and operators can exercise core flows without the desktop app—with first-class support for skills (invoke, inspect state, errors, sandbox boundaries) and other domains as needed.Problem
Today, validating behavior often means running the full stack (Tauri + sidecar + UI) or crafting JSON-RPC / HTTP calls by hand. That is slow for iteration, especially for skills (QuickJS runtime, tool wiring, registry, workspace paths). A lightweight, terminal-first loop would speed up:
Constraints to call out in design: no accidental secret logging, same business rules as RPC where applicable (avoid a second implementation of skill policy), and clear scope (REPL for dev/test vs shipping to end users).
Solution (optional)
Treat this issue as design-first; implementation can follow in a separate PR.
Possible directions (not prescriptive):
openhuman repl(oropenhuman shell) subcommand that starts a read-eval-print loop with commands likeskill list,skill run <id> …,rpc call <method> …,config show,help.openhuman::*/ same paths the JSON-RPC server uses) so behavior matches production.--eval '…', stdin batch) for CI or quick one-liners.Tradeoffs: REPL surface area vs maintenance; ensuring feature parity with RPC over time; Windows terminal UX.
Acceptance criteria
Related
Cargo.toml,src/main.rs/openhuman_coresrc/openhuman/skills/core_server,src/core/cli.rs, controller registry