session-orchestrator
v5.3.0+codex.20260922063114A repeatable Plan, Go, Close workflow for AI coding sessions: /session reads your repo and agrees the scope, /go runs the work in waves with a quality gate between each, /close verifies and commits. Runs on Claude Code, Codex CLI, Cursor and Pi.
1.1k GitHub starsUpdated 12 hours ago
Directory evidence
- Runtimes
- Codex
- Parsed components
- 1 skill or MCP entry
- Source updated
- Sep 23, 2026
- Manifest status
- Canonical path parsed
The directory validates manifest shape and source location. It does not execute the plugin or provide a security endorsement. Review the indexing methodology →
Install session-orchestrator for Codex
codex plugin marketplace add hashgraph-online/awesome-codex-plugins
codex plugin marketplace upgrade awesome-codex-plugins
codex plugin add session-orchestrator@awesome-codex-pluginsPaste and run these commands in a terminal with Codex. They add and refresh the awesome-codex-plugins catalog, then install this plugin.
Compatibility: the page URL and API slug “session-orchestrator-2” remain stable.
- Codex:
session-orchestrator-2@agent-plugin-marketplace→session-orchestrator@awesome-codex-plugins
The installer fetches third-party code from the source repository shown on this page. This directory validates manifest structure and source location, but does not perform a security audit; review the manifest, components, and source before installing.
Get the source manually
git clone https://github.com/hashgraph-online/awesome-codex-pluginsClone the source repository, then follow its setup instructions to add the plugin to a compatible client. The plugin root is plugins/Kanevry/session-orchestrator/.
Plugin files
├── .codex-plugin/plugin.json└── .mcp.json
MCP servers1
- command
- bash
- args
- -c # Tier order MIRRORS resolvePluginRoot() — see scripts/lib/plugin-root.mjs § TIER ORDER (the single source of truth). That list is the original, this is the mirror: change both together. The env list, the CODEX_HOME trim, the package.json{name} test and the newest-wins-by-mtime tiebreak are all mirrored EXACTLY; only tier 6 (walk up from import.meta.url) has no shell analogue. r=""; ch="$CODEX_HOME"; ch="${ch#"${ch%%[![:space:]]*}"}"; ch="${ch%"${ch##*[![:space:]]}"}"; [ -n "$ch" ] || ch="$HOME/.codex"; for c in "$PLUGIN_ROOT" "$CLAUDE_PLUGIN_ROOT" "$CODEX_PLUGIN_ROOT" "$CURSOR_RULES_DIR" "$PI_PLUGIN_ROOT" "$(git rev-parse --show-toplevel 2>/dev/null)"; do if [ -n "$c" ] && [ -f "$c/scripts/mcp-server.sh" ]; then r="$c"; break; fi; done; if [ -z "$r" ]; then r="$(NODE_PATH="$(npm root -g 2>/dev/null)" node -e 'import(require(`node:url`).pathToFileURL(require.resolve(`session-orchestrator/scripts/lib/plugin-root.mjs`))).then(m=>process.stdout.write(m.resolvePluginRoot()))' 2>/dev/null)"; fi; if [ -z "$r" ]; then for b in "$ch" "$HOME/.claude"; do for c in "$b"/plugins/cache/*/session-orchestrator/*; do if [ -f "$c/scripts/mcp-server.sh" ] && node -e 'process.exit(JSON.parse(require("fs").readFileSync(process.argv[1],"utf8")).name==="session-orchestrator"?0:1)' "$c/package.json" 2>/dev/null && { [ -z "$r" ] || [ "$c" -nt "$r" ]; }; then r="$c"; fi; done; done; fi; if [ -n "$r" ] && [ -f "$r/scripts/mcp-server.sh" ]; then exec bash "$r/scripts/mcp-server.sh"; fi; { echo "session-orchestrator: cannot locate the plugin root — the MCP server did not start."; echo " Tried: PLUGIN_ROOT=${PLUGIN_ROOT:-(unset)}, CLAUDE_PLUGIN_ROOT=${CLAUDE_PLUGIN_ROOT:-(unset)}, CODEX_PLUGIN_ROOT=${CODEX_PLUGIN_ROOT:-(unset)}, CURSOR_RULES_DIR=${CURSOR_RULES_DIR:-(unset)}, PI_PLUGIN_ROOT=${PI_PLUGIN_ROOT:-(unset)}, git rev-parse --show-toplevel (cwd=$PWD), node resolve of session-orchestrator/scripts/lib/plugin-root.mjs, plugin caches $ch/plugins/cache/*/session-orchestrator/* and $HOME/.claude/plugins/cache/*/session-orchestrator/*."; echo " Fix: reinstall the plugin so its cached copy is refreshed (codex plugin marketplace add Kanevry/session-orchestrator), or set CLAUDE_PLUGIN_ROOT / CODEX_PLUGIN_ROOT to the plugin directory in this server's env block."; echo " Note: CODEX_PLUGIN_ROOT is session-orchestrator's own compatibility export, not a variable Codex provides. See docs/codex-setup.md § Troubleshooting."; } >&2; exit 1
MCP configuration uses runtime-provided plugin path placeholders such as ${PLUGIN_ROOT} or ${CLAUDE_PLUGIN_ROOT}. Review the manifest for the runtime-specific expansion rules.
Plugin manifests1
{
"name": "session-orchestrator",
"version": "5.3.0+codex.20260922063114",
"description": "A repeatable Plan, Go, Close workflow for AI coding sessions: /session reads your repo and agrees the scope, /go runs the work in waves with a quality gate between each, /close verifies and commits. Runs on Claude Code, Codex CLI, Cursor and Pi.",
"keywords": [
"session",
"orchestration",
"waves",
"gitlab",
"github",
"quality-gates",
"codex"
],
"skills": "./.codex-plugin/skills/",
"commands": [],
"hooks": "./hooks/hooks-codex.json",
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "Session Orchestrator",
"shortDescription": "Structured engineering sessions for Codex",
"longDescription": "Adds reusable session workflows to Codex: project analysis, wave planning, guided execution, quality gates, persistence, and clean session close-out.",
"developerName": "Bernhard Goetzendorfer",
"category": "Coding",
"capabilities": [
"Interactive",
"Write"
],
"composerIcon": "./assets/icon.svg",
"websiteURL": "https://session-orchestrator.com",
"privacyPolicyURL": "https://gotzendorfer.at/en/session-orchestrator/privacy",
"termsOfServiceURL": "https://gotzendorfer.at/en/session-orchestrator/terms",
"defaultPrompt": [
"$session-orchestrator:session",
"$session-orchestrator:go",
"$session-orchestrator:close"
]
}
}For maintainers
If you maintain this plugin, link to this source-backed listing from your README so users can review its manifest and indexed components.
[session-orchestrator on Agent Plugins Marketplace](https://pluginsmp.com/plugins/session-orchestrator-2)