AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
Genie는 에이전트를 위한 데스크톱으로, 세계 최초의 에이전트 운영체제이며 모든 프로젝트·터미널·편집기·백그라운드 작업을 하나의 창에 통합한다
Genie is the desktop for your agents — the world's first Agentic Operating System. Every project, terminal, editor, and background process in one window; your repos served at .gen addresses with datab
개발 도구TypeScript · JavaScriptGitHub @Renaissance-Analytics온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
Genie OS - The desktop for your Agents, that runs on your desktop, a remote server or in the cloud.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
The workstation for agentic work: .agi workspaces, durable AMS agents,
AgentInbox, hosted .gen sites, managed toolchains, and plugin-provided Fancy
surfaces in one desktop app.
Status: beta. Public so developers can audit what the binary
does on their machine and contribute back. Expect rapid iteration.README 전문 보기 ↗A rebuild of Genie. An agent is a session. A session is not a terminal.
Build specification: .ai/plans/genie-2-spec-from-scratch.md in the tynn.ai envelope.
No agent process is ever attached to a pty — for any reason, including "an unused one".
AgentEngine has one member and no 'pty', so the state is unrepresentable rather than
merely avoided. The only TUI path is Take Over, which opens a terminal in its own window
with Genie's MCP available; Genie does not start, manage, restart or revive it.
PROVIDER @particle-academy/prism-acp ClaudeDriver, CodexDriver — spawn, speak ACP
DURABILITY @particle-academy/prism-harness Thread + FileSessionStore ONLY (not AgentRuntime)
SURFACE genie2 renders the session model; never parses bytes
prism-harness's AgentRuntime assumes Prism is the agent (LlmClient = (req) => Promise<res>)
and has zero knowledge of ACP. Genie's agent is an external CLI owning its own thread over a
streaming protocol, so only the durability half applies — confirmed as the intended seam by
that package's author.
npm test # 406 unit tests, ~2s
npm run typecheck # tsc; the no-pty rule lives in the type system, so this is a gate
npm run build # renderer (vite) + main (ESM) + preload (CJS — a sandboxed preload
# supports only CommonJS; an ESM one loads as nothing)
npm run verify # typecheck + test + build
bash scripts/verify-linux.sh # the whole gate on real Linux, in a container, ~40s
bash scripts/smoke-linux.sh # OPEN THE APP: a real window under Xvfb, driven over CDP
npm run verify:live # a real claude session: start, reply, persist, stop, process scan
npm run verify:flow # real frames -> ledger rows -> the row a person reads
smoke-linux.sh is the one that matters. The build this replaces shipped four releases on
green unit suites and every one was broken the moment somebody opened it, because nobody ever
opened it. It runs on every push too, as a CI job called a real window, and uploads
screenshots — looking at them has found five defects no test caught, including a Dashboard with
no empty state and an entire application rendering in one font.
verify:live and verify:flow need the provider binary and spend real subscription tokens, so
they are deliberately not part of npm test. Run them before anything is tagged.
Not a browser, not Electron, not a dev server. Every check above either runs headless in a
--rm container or on CI. That is a standing rule of this workspace, not a preference.
src/core/ every DECISION, as pure functions — tested without a DOM
src/main/ Electron main: registry, sessions, store, paths, upgrade
src/renderer/ React surfaces; they render and decide nothing
scripts/ verification that needs a machine rather than a test runner
docs/ the decisions the spec left to the builder, and why
The split is load-bearing: a decision taken inside a component is a decision nobody checks, and that is where the previous build kept most of them.
.ai/plans/genie-2-build-status.md in the envelope says what is built, what is verified, how
it was verified, and what is not. That separation is the point — four releases shipped on
"the tests pass".