codex-agents-workflow
v1.1.1A Codex MCP Extension workbench for reusable agent Workflows, Roles, Providers and recoverable Runs.
By TohmaN233License: MIT1.2k GitHub starsUpdated yesterday
Directory evidence
- Runtimes
- Codex
- Parsed components
- 2 skill or MCP entries
- Source updated
- Oct 6, 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 codex-agents-workflow for Codex
codex plugin marketplace add hashgraph-online/awesome-codex-plugins
codex plugin marketplace upgrade awesome-codex-plugins
codex plugin add codex-agents-workflow@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 “codex-agents-workflow” remain stable.
- Codex:
codex-agents-workflow@agent-plugin-marketplace→codex-agents-workflow@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/TohmaN233/codex-agents-workflow/.
Plugin files
├── .codex-plugin/plugin.json├── skills/orchestration/SKILL.md└── .mcp.json
Included Skills1
Automatically use enabled Workbench Roles for useful delegation in ordinary tasks when no registered Workflow matches. The user does not need to name a Role.
MCP servers1
- command
- node
- args
- -e const fs = require('node:fs/promises'); const path = require('node:path'); const os = require('node:os'); const {pathToFileURL} = require('node:url'); const {execFile} = require('node:child_process'); const {promisify} = require('node:util'); function installationNamespace(directory) { const root=path.resolve(directory); if(path.basename(root)!=='codex-agents-workflow')throw Error('WORKFLOW_PLUGIN_NAMESPACE: cwd must be the launching plugin cache namespace'); const marketplace=path.basename(path.dirname(root)); if(!marketplace || marketplace.includes('@'))throw Error('WORKFLOW_PLUGIN_NAMESPACE: invalid marketplace namespace'); return {root,marketplace,pluginId:'codex-agents-workflow@'+marketplace}; } function registeredRoot(registry, namespace) { const identity=installationNamespace(namespace); if(!Array.isArray(registry?.installed))throw Error('WORKFLOW_PLUGIN_REGISTRY: missing installed-plugin inventory'); const entries = registry.installed.filter(p => p.pluginId === identity.pluginId && p.installed); if(entries.length !== 1 || !entries[0].enabled || !/^[0-9][A-Za-z0-9.+_-]*$/.test(entries[0].version)) throw Error('WORKFLOW_PLUGIN_REGISTRY: expected one enabled installed version'); return {...identity,version:entries[0].version,root:path.join(identity.root,entries[0].version)}; } async function boot() { const home = process.env.CODEX_HOME || path.join(os.homedir(),'.codex'); const auditRoot=path.join(home,'codex-agents-workflow'); await fs.mkdir(auditRoot,{recursive:true}); const audit=event=>fs.appendFile(path.join(auditRoot,'mcp-startup.jsonl'),JSON.stringify({at:new Date().toISOString(),pid:process.pid,...event})+'\n'); const context={}; try { const namespace=await fs.realpath(process.cwd()); const identity=installationNamespace(namespace); Object.assign(context,{namespace,marketplace:identity.marketplace,pluginId:identity.pluginId}); // Ask the installation registry on EVERY handshake. Never choose max(cache dirs) // or use the revision captured by a long-running host's plugin catalog. // The host resolves cwd=".." relative to this installed package. That // stable namespace identifies the source even when another marketplace // installs the same plugin, or a warm host remembers an obsolete version. const {stdout}=await promisify(execFile)(process.env.CODEX_CLI_PATH || 'codex',['plugin','list','--marketplace',identity.marketplace,'--json'],{windowsHide:true,timeout:10000,maxBuffer:1024*1024}); const selected=registeredRoot(JSON.parse(stdout),namespace); const manifest=JSON.parse(await fs.readFile(path.join(selected.root,'.codex-plugin/plugin.json'),'utf8')); if(manifest.name!=='codex-agents-workflow'||manifest.version!==selected.version)throw Error('WORKFLOW_PLUGIN_IDENTITY: registered version does not match installed files'); // Node resolves imported modules through filesystem aliases. Use that same // physical entry for argv so server.mjs recognizes itself as the main module. const entry=await fs.realpath(path.join(selected.root,'control-plane/server.mjs')); await audit({phase:'resolved',...context,version:selected.version,entry}); // Keep the configured stable cwd. Holding a disposable plugin version as // cwd prevents the installer from replacing that directory on Windows. process.argv[1]=entry; await import(pathToFileURL(entry).href); } catch(error) { await audit({phase:'failed',...context,code:error.code??'WORKFLOW_MCP_BOOT_FAILED',message:error.message}); throw error; } } module.exports={installationNamespace,registeredRoot,boot}; boot().catch(error=>{console.error('WORKFLOW_MCP_BOOT_FAILED',error.stack||error);process.exitCode=1;});
- cwd
- ..
Plugin manifests1
{
"name": "codex-agents-workflow",
"version": "1.1.1",
"description": "A Codex MCP Extension workbench for reusable agent Workflows, Roles, Providers and recoverable Runs.",
"author": {
"name": "TohmaN233",
"url": "https://github.com/TohmaN233"
},
"homepage": "https://tgy233.top/tgypage/caw/",
"repository": "https://github.com/TohmaN233/codex-agents-workflow",
"license": "MIT",
"keywords": [
"codex",
"orchestration",
"multi-agent",
"control-plane",
"external-models",
"workflow",
"skill-to-workflow"
],
"skills": "./skills/",
"mcpServers": "./.mcp.json",
"interface": {
"displayName": "Codex Agents Workflow",
"shortDescription": "Build and run agent workflows",
"longDescription": "Manage Workflows, Roles and Providers inside Codex through an MCP Extension workbench, with a separate settings view. Built-in Skill to Workflow and Build Workflow turn instructions into reusable task graphs. The local Host compiles mechanical fields, checks dependencies, schedules steps and records exact recovery state. Agent nodes receive the materials needed for their step; Main retains responsibility for verification and acceptance and waits for events when dependent work is pending. Export and install portable Workflow packages, inspect Run records, and resume interrupted work without automatically resubmitting completed tasks. A standalone browser console uses the same Host and configuration.",
"developerName": "TohmaN233",
"category": "Productivity",
"capabilities": [
"Interactive",
"Write"
],
"websiteURL": "https://tgy233.top/tgypage/caw/",
"defaultPrompt": [
"Open the Workflow workbench inside Codex.",
"Turn this Skill into a reusable Workflow.",
"Review this change with my enabled reviewer Role."
],
"logo": "./assets/icon.svg",
"composerIcon": "./assets/icon.svg"
}
}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.
[codex-agents-workflow on Agent Plugins Marketplace](https://pluginsmp.com/plugins/codex-agents-workflow)