Jorgex Stack
БесплатноНе проверенHarness multi-agente portable: instala la config JorgeX (agentes, skills, hooks, Engram, MCPs) en Claude Code, Codex CLI y OpenCode
Описание
Harness multi-agente portable: instala la config JorgeX (agentes, skills, hooks, Engram, MCPs) en Claude Code, Codex CLI y OpenCode
README
Portable multi-agent harness: one configuration source — 15 agents, 19 skills, hooks, persistent memory (Engram), MCPs, and system prompt — installable with one command in Claude Code, Codex CLI, and OpenCode.
Inspired by gentle-ai, rebuilt for the JorgeX stack.
Usage
Install and run via npm without cloning the repository:
# First installation
pnpm dlx jorgex-stack install
# Already installed: apply the latest published stack while keeping the existing model selection
pnpm dlx jorgex-stack sync
Other important commands:
pnpm dlx jorgex-stack doctor # check Engram, config drift, hooks and keys
pnpm dlx jorgex-stack models # change models by runtime, tier or subagent
pnpm dlx jorgex-stack update --check # report available stack, Engram and skill updates
pnpm dlx jorgex-stack update # interactively review and apply available updates
pnpm dlx jorgex-stack restore --list # list automatic backups
pnpm dlx jorgex-stack restore <id> # restore one backup
pnpm dlx jorgex-stack uninstall # remove managed files; keep Engram data intact
For development from a clone, run the same commands through pnpm cli <command> (see Development).
Every command supports --dry-run, --yes, and --target-dir <dir> for testing without touching the real config. Writes create automatic backups and verify idempotency; merges into user config are surgical (marked markdown sections, JSON/TOML upserts), so user-owned content is never touched.
Runtime defaults are documented in docs/references/permissions.md for permissions and docs/references/models.md for provider-aware model selection, Codex tiers, and orchestrator inheritance. OpenCode has no provider defaults.
Modes: Human and Programmatic
install and sync accept two mutually-exclusive installation modes. The choice is global (not per runtime) and is saved in ~/.jorgex-stack/install-mode.json on first run; subsequent sync calls reuse it. Re-run install with --mode to switch.
| Mode | Audience | Final assistant response | Subagents |
|---|---|---|---|
human (default) |
interactive users, TUI | natural language, in the user's language | today's behavior (parallel where safe) |
programmatic |
external orchestrators, CI, scripts, other agents | strict JSON, English | serial by default, parallel opt-in |
human is the recommended mode for humans. programmatic exists for agent/script consumers and low-resource headless machines; it is not a "better" mode for humans.
Flags:
--mode human|programmatic
--subagent-concurrency serial|parallel # only valid with --mode programmatic
Non-interactive / agent install:
pnpm dlx jorgex-stack install --mode programmatic --subagent-concurrency serial --yesThis installs into all detected runtimes. To be explicit, add
--agents opencode,claude-code,codexor a comma-separated subset. Always pass--mode programmatic; without--mode,--yesand non-TTY installs default tohuman.OpenCode also requires an existing selection in
~/.jorgex-stack/model-map.json; runpnpm dlx jorgex-stack models --agents opencodeinteractively once before a headless install.--mode humancannot be combined with--subagent-concurrency.Without
--mode, the first run asks interactively;--yes, non-TTY, and--target-dirdefault tohuman.pnpm dlx jorgex-stack syncreuses the saved mode; pass--modeto change and save the preference.
Programmatic mode guarantees:
- The final assistant response is exactly one strict JSON object, no Markdown fences or prose around it. Schema in
stack/modes/programmatic/final-output.schema.json— required keys:status,decision,confidence(0..1),summary,risks[],next_steps[],delegations[];statusisdone|partial|blockedand eachdelegations[]item usesagent: work — paths — inputs. - English only, compact and direct.
- Subagents default to serial delegation (one at a time, no parallel). Pass
--subagent-concurrency parallelto allow it.
Programmatic mode does not provide:
- An opt-out from Engram (Engram is always part of the install).
- Any special stdout streaming guarantee — the runtime's normal output rules apply.
- Telemetry, JSONL streams, or runtime token-budget enforcement.
Browser automation
Browser automation is opt-in and explicit. The legacy agent-browser integration has been removed; rely on the two surfaces below.
- Playwright CLI (recommended):
@playwright/[email protected]plus a vendored skill that ships pinned with the stack. The skill is loaded on demand, contributes no permanent MCP schemas, and declaresallowed-tools: Bash(playwright-cli:*)only (noBash(pnpm:*)). This is the skill's declaration, not a security boundary: effective permissions still come from the adapter/runtime, and OpenCode/full-bash may expose broader Bash or other capabilities. See docs/references/browser-automation.md for the full lifecycle, the security profile and troubleshooting. - Chrome DevTools MCP (advanced diagnostics, opt-in): exposes ~29 tools and ~5,800–7,700 tokens of schemas in full mode. Disabled by default, selected per runtime, version-pinned, and launched with a fixed argv
pnpm dlx [email protected] --isolated --redact-network-headers --no-performance-crux --no-usage-statistics.--isolatedstarts Chrome with an ephemeral, isolated profile that is deleted when Chrome closes (no persistent dedicated profile, no shared cookies/extensions/sessions with your personal Chrome);--redact-network-headersredacts sensitive headers in captured network traffic, but not request/response bodies, which may contain tokens or PII. Avoid authenticated sessions or sensitive data, or disable network capture manually outside the stack when needed.--no-performance-cruxdisables CrUX reporting;--no-usage-statisticsdisables telemetry.--slimand Playwright MCP are intentionally excluded.
Setup that respects the zero-secrets, pnpm-only and explicit-consent rules:
# Interactive (TTY): the install prompt suggests Playwright CLI but defaults to "No" (opt-in consent). Press `y` to install.
pnpm dlx jorgex-stack install
# Non-interactive / agent: --playwright authorizes the global install.
pnpm dlx jorgex-stack install --yes --playwright
# Enable Chrome DevTools MCP explicitly per runtime.
pnpm dlx jorgex-stack install --devtools
pnpm dlx jorgex-stack install --no-devtools
Under the hood, --playwright runs two pnpm argv-only plans back to back: pnpm add --global @playwright/[email protected] (the package) and then pnpm dlx @playwright/[email protected] install-browser (the browser binary cache). Removal is pnpm remove --global @playwright/cli (no version suffix). If installation fails, the error identifies the failed phase — global package, browser download, or preference persistence — and recommends jorgex-stack install --playwright; the preference is not marked enabled unless the complete plan succeeds.
Daily operation:
syncreconciles configuration without installing global tools or browsers; if Playwright is enabled but the binary or browser cache ismissing, it warns and points toinstall --playwright; if the cache isunreadable, the warning includes its resolved path and filesystem error code. The cache probe retains the path for both states and an error code when the filesystem provides one. Under--target-dir,sync/install/uninstallnever read or write the real browser state (~/.jorgex-stack/playwright-cli.jsonand~/.jorgex-stack/devtools-mcp.jsonare untouched,detectPlaywrightCli()is not called, no MCP ownership is persisted).doctorreports the Playwright CLI state (disabled,healthy,missing:package,missing:browser,unreadable,broken,outdated) without opening sites or repairing state. Anunreadablebrowser cache includes its exact path and filesystem error code so permissions or another local cause can be investigated. If either preference file is corrupt, doctor prints the exact path and the remedy (Corrige o borra ese archivo antes de reintentar) before any other browser check; in that caseinstall/uninstall/update/update --checkwill abort with exit 1 until the file is fixed, so the corruption cannot be reconciled destructively.update --checkonly inspects Playwright CLI when its preference isenabled(a binary appearing inPATHis not consent). It compares the installed version against the approved pin0.1.17— it does not consult npm latest, and a Playwright CLI binary-only update does not requiresyncafterwards.uninstallpreserves the global@playwright/clipackage and all browser data by default;--remove-playwrightremoves the package only (never the browser cache, profiles, cookies, storage state, traces, screenshots or videos). Ifpnpm remove --global @playwright/cliexits non-zero,uninstallreports the failure instead of a success outro. For DevTools MCP, ownership is released only after the corresponding unmerge is applied; if no unmerge action is written, the ownership marker is preserved for a later retry.install/syncalso inject (anddisable/uninstallremove) a marked section<!-- jorgex:browser -->inAGENTS.md(OpenCode, Codex) orCLAUDE.md(Claude Code): the section only contains Playwright guidance when its setup succeeded, and DevTools guidance only in the runtimes that selected it; the rest of the file outside the markers is preserved.--target-dirnever reads the real preferences, so by default no section is emitted in target-dir runs — but explicit flags like--devtoolssimulate the MCP entry (and the corresponding DevTools block of the section) inside the temp target without touching the real global state, andinstall --dry-run --playwrightprojects the Playwright section into the plan preview without installing anything. If the post-setup reconciliation of the system prompt leaves the section in a partial state, the CLI exits non-zero and recommendsjorgex-stack syncto repair it; the package and the preference stay installed. See docs/references/browser-automation.md §2.7 for the full lifecycle.
Update: Interactive Flow
update manages three sources for the end user, plus a maintainer-only one:
- Stack (jorgex-stack): detects whether it is a git clone or a global install, then offers an update with confirmation.
- Engram (binary): detects the installed version and offers an update through the native channel (brew ->
go install-> release URL). Nothing needs to be stopped: as in upstream macOS/Linux, live processes keep using the old version until clients restart; on Windows, the in-use.exeis rotated by rename before installation. Automatic DB backup before updating. The database and memories are never touched. - Playwright CLI (only when explicitly enabled): compares the detected binary with the approved bundle pin and offers to realign it with explicit confirmation. The realignment re-applies both plans —
pnpm add --global @playwright/[email protected](package) andpnpm dlx @playwright/[email protected] install-browser(browser cache) — and fails closed if either step returns non-zero. The error identifies whether the package-update or browser-download phase failed and recommendsjorgex-stack install --playwrightto retry both; a Playwright update does not requiresync. - Vendored skills (maintainer only): third-party skills ship pinned with the stack version, so the installed package never reaches out to their upstreams. Only when running from a git clone (
pnpm cli update) doesupdatescan the upstreams inupstreams.json, download to a temp directory, show a mandatory diff, and ask for confirmation — so the review and re-pin persist in the repo and get published. Skills with local changes (modified: true) warn and require double confirmation.
Usage:
update --check: scans versions without applying changes.update(TTY, without--yes): interactive multiselect with visible diffs and step-by-step confirmations.update --yesor non-TTY: behaves like--check(report only).
GitHub authentication: requests use GH_TOKEN/GITHUB_TOKEN from the environment or, if unavailable, the token from your gh CLI session (gh auth token — local read only, never logged or persisted). Without a token, GitHub limits parallel requests and some upstreams may appear as "offline".
OpenCode Goal Mode
The normal work-lifecycle already supports multi-PR plans: work/{name}/PRD.md and plan.md stay alive across intermediate merges, work/{name}/pr/{NN} stores each checkpoint, and work/{name}/done is reserved for the final close. Goal Mode is separate: an OpenCode plugin for long-running goals, multiple sessions, multiple slices, multiple worktrees, and, when needed, multiple PRs. It is not meant for short tasks. If the change fits without extended autonomy, do not use /goal.
It only exists in OpenCode. Claude Code and Codex do not receive it.
Available commands:
/goal <goal>— creates a persistent goal./goal status— shows status and next action./goal plan— shows the goal's master plan / PRD./goal history— lists events and transitions./goal pause— pauses the goal./goal resume— resumes the goal./goal merged [commit]— signals that the pending external PR has been merged./goal cancel— cancels the goal.
What does not exist:
/goal quick/goal work
Operational state:
- Separate SQLite database by default at
~/.jorgex-stack/goals/goals.sqlite. - Optional override with
JORGEX_GOAL_DB, but always inside~/.jorgex-stack/goals/. - Engram is not the goal's operational store: it remains memory/protocol, not the state database.
- Goal Mode does not perform automatic merges; when it must wait for an external merge, the state becomes
waiting_for_merge. - The integration uses experimental OpenCode hooks (
experimental.chat.system.transformandexperimental.session.compacting), so that surface may change.
Status
The CLI is complete and the real migration has been executed; the stack is the only configuration source. Versions are published automatically to npm according to the flow described in Publishing.
Publishing
Releases are triggered by push/merge to main and GitHub Actions; there is also a recovery workflow_dispatch on main with an optional release_sha. validate resolves the target SHA once and exposes it as target_sha; bump reuses that SHA. If you do not pass release_sha, validate pins target_sha to origin/main after fetch; if you do pass it, it must be a full 40-hex SHA that belongs to main or the workflow fails red with recovery instructions. Running without release_sha is only valid to publish origin/main when the version does not exist on npm yet; if the version already exists and the tag is missing, the workflow fails and requires workflow_dispatch with release_sha=<published sha>. If the diff mixes publishable changes with .github/workflows/*, auto-release stops before bump/publish because GitHub may reject the tag push without workflow permissions; split the release or use manual publish/tag with elevated permissions. pnpm publish is not used and npm login is not required:
- Automatic patch: if the push to
maincontains publishable changes and the currentpackage.jsonversion already exists on npm, the workflow finds the first free patch (x+1,x+2, ...), commitschore(release): bump version to v..., and publishes. If tagv<package.version>already exists, it uses that point as the accumulated base; otherwise, it falls back togithub.event.before. Obsolete runs are aborted aftergit fetch origin main --tagsiforigin/mainno longer matchesGITHUB_SHA. - Manual recovery: a manual run on
mainwithrelease_shapublishes that SHA if it does not exist on npm yet, without bumping again; if the version already exists on npm but tagv<version>is missing, the workflow fails and forces a rerun withrelease_sha=<published sha>to avoid taggingorigin/main.release_shamust be a full 40-hex SHA and belong tomain; mutable refs (main, tags,main~1) are rejected. If you do not passrelease_sha,validateresolvesorigin/mainonce, exposes it astarget_sha, andbumpuses that validated SHA. Recovery does not bypass the.github/workflows/*guard: if the diff mixes workflows with publishable changes, split the release or perform the tag/publish manually with elevated permissions. If there is no reachable previous release tag to reconstruct the range, the workflow fails closed and requires manual intervention. - No release: changes only in
work/,worktrees/, tests, or docs (README.md,docs/) do not create a release. The publishable set that does trigger one issrc/,stack/,upstreams.json,package.json,pnpm-lock.yaml,tsconfig.json, andtsup.config.ts. - Manual minor and major: explicit bump in
package.jsonin the PR (the workflow detects that the next patch already exists on npm and requires the bump). - OIDC / trusted publishing: the publishing job uses
id-token: writeandsetup-noderegistry-url; the bump/push job only hascontents: write;tag-releaseonly writescontentsand does not use OIDC. There is noNPM_TOKENorNODE_AUTH_TOKENin any secret.tag-releaseonly runs ifpublishwassuccessorskippedwithtag_needed=true, and keeps its SHA validation as the final defense. The only exception to the "always pnpm" rule isnpm pack --dry-run --ignore-scriptsandnpm publish --ignore-scripts --provenancein the final step, for registry compatibility and hardening.
Development
Requirements: Node >= 22.5 and pnpm (never npm). Goal Mode uses node:sqlite in tests/Node CLI and OpenCode uses bun:sqlite at runtime.
pnpm install
pnpm build # tsup -> dist/
pnpm typecheck
pnpm test # vitest
pnpm cli --help
Установить Jorgex Stack в Claude Desktop, Claude Code, Cursor
unyly install jorgex-stackСтавит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add jorgex-stack -- npx -y jorgex-stackFAQ
Jorgex Stack MCP бесплатный?
Да, Jorgex Stack MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Jorgex Stack?
Нет, Jorgex Stack работает без API-ключей и переменных окружения.
Jorgex Stack — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Jorgex Stack в Claude Desktop, Claude Code или Cursor?
Открой Jorgex Stack на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Jorgex Stack with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
