Corezoid logo

Corezoid

Organization
corezoid
corezoid

Universal Corezoid assistant. Use when the user asks anything about Corezoid processes, wants to work with process JSON files, mentions process nodes, MCP tools, process validation, or any Corezoid-specific task. Also use when the user mentions "Corezoid", "BPM process", "conv.json", "push process", "run task", or asks for general platform knowledge. This skill provides deep knowledge of the platform model and guides you to use the Corezoid MCP tools correctly.

Overview

Publishercorezoid
Repositorycorezoid-ai-plugin
Skill namecorezoid
Stars
74
Forks
26
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by corezoid on GitHub. Read the source before you install it.

Installation

Install the Corezoid AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/corezoid/corezoid-ai-plugin/tree/main/plugins/corezoid/skills/corezoid
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/corezoid/corezoid-ai-plugin.git /tmp/corezoid-ai-plugin
mkdir -p .claude/skills
cp -r /tmp/corezoid-ai-plugin/plugins/corezoid/skills/corezoid .claude/skills/corezoid
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Corezoid in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Corezoid on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Corezoid is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Corezoid Platform Assistant

You are an expert on the Corezoid platform. You have access to the Corezoid API via the corezoid MCP server.

MCP Tools Reference

Tools come in two shapes. These are called directly, one tool per operation:

ToolPurpose
loginAuthenticate via OAuth2 (opens browser)
logoutRemove saved credentials
pull-folderExport entire stage/folder to local directory
pull-processExport a single process to a file
push-processValidate and deploy a .conv.json file
lint-processValidate process structure locally (no API needed)
layout-processAuto-arrange node coordinates into a clean layout (local; only x/y and collapse flags change)
clean-processRemove nodes with no traffic in the last N days (default 90) and save the result as a reviewable <ID>_<title>.cleaned.json proposal — never deploys. Review the diff, then pass that path explicitly to lint-process/push-process
run-taskRun a task on an already-deployed process, by process_path or process_id — process_id needs no local file, so it also works in hosts with no local process repository (no pull-process required). Task data over 4 KB is left out — only its size and keys; to read it use show-task with the returned TaskID, not a re-run. Pass fields (returned on a Fields line keyed by path — not a modify-task payload) or mode: "full" up front when you know you need the data
create-processCreate a new empty process (conv_type: "process") in a folder
create-state-diagramCreate a new empty state diagram (conv_type: "state") in a folder
pause-process / resume-processExplicitly pause or reactivate one process; dry-run + exact confirmation required
create-aliasCreate a short alias for a process
create-communications-orchestratorBuild a multi-platform messenger robot (Telegram / Facebook Messenger / Viber / Apple Messages for Business). Needs one channel token per messenger; returns the folder_url of the generated folder once the async build finishes. Two calls: apply=false previews and prints a confirm token, apply=true + that token builds

Router tools

The CRUD-shaped domains are grouped behind one tool each, so tools/list costs 35 KB instead of 65 KB of every session. Call a router with the action name and the action's own arguments:

cz-access {"action": "share-object", "args": {"obj": "conv", "obj_id": 1234567, "obj_to": "user", "obj_to_id": 890, "privs": "view,modify"}}

Arguments go inside args, never at the top level. Add "help": true to get an action's full argument schema back instead of running it — nothing executes. A call with a missing or unknown action answers with the router's action list, so a wrong guess costs one call, not a session.

cz-access — sharing, groups, API keys, invites
ActionPurpose
share-objectGrant or revoke access on a process / folder / stage / project (use privs="none" to revoke — same wire op as share with empty privs)
list-sharesAudit who currently has access to an object
create-group / modify-group / delete-groupManage workspace user groups (delete refuses if group has active shares unless force=true)
list-group-objectsList processes currently shared with a group (used to audit impact before delete)
add-to-group / remove-from-groupManage group membership
list-groupsList groups in the workspace
create-api-keyCreate an API key. Secret is written to ~/.corezoid/api-keys/.json (chmod 600) — never printed in chat
modify-api-keyRename or re-describe an API key
delete-api-keyDelete an API key (invalidates the secret immediately)
list-api-keysList API keys in the workspace
find-principalResolve user / group / API-key name → obj_id (call before share-object)
invite-userInvite an external email AND share an object in one call
cz-structure — workspaces, projects, stages, folders, moves
ActionPurpose
create-folderCreate a new subfolder
move-process / move-folderExplicitly reparent an existing object without copying/deploying; dry-run + exact confirmation required
list-workspacesWorkspaces (companies) available to the authenticated user
list-projectsProjects in a workspace
show-projectOne project's metadata and the stages visible to the caller
create-projectCreate a project, optionally with stages
modify-projectRename a project / change short_name or description
delete-projectMove a project to Trash (destructive)
list-stagesStages (environments) of a project
set-stage-immutableSet/clear a stage's immutable flag (needs confirm)
list-foldersImmediate children of a folder: subfolders, processes, state diagrams
show-folderOne folder's metadata: title, obj_type, parent
modify-folderRename a folder / change its description
delete-folderMove a folder to Trash (destructive)
cz-tasks — tasks inside a deployed process
ActionPurpose
show-taskLook up one task by ref and/or task_id — returns its current data, node_id and status. Read-only; use it instead of paging list-node-tasks. fields returns only those data paths (under fields, keyed by path) — the way to read large data run-task left out
modify-taskChange a task's data; deep_merge=true merges instead of replacing
delete-taskDelete a task from a process (destructive)
list-node-tasksTasks currently parked in a node — compact (metadata only) by default; pass fields for specific data paths (returned under fields, keyed by path — not a modify-task payload), filter to match data within the page, mode: "full" for whole payloads
list-task-historyThe node path a task has taken
get-node-statIn/out counts for a node over a time range (default: last 24h)
cz-dashboards — dashboards and charts
ActionPurpose
create-dashboardCreate a new dashboard for process metrics
get-dashboardGet dashboard details with charts and series
add-chartAdd a chart (column/pie/funnel/table) to a dashboard
get-chartGet a single chart with its series data
modify-chartModify an existing chart (full series required)
set-dashboard-layoutSave chart positions on the grid (required to make charts visible)
cz-variables — stage environment variables
ActionPurpose
create-variableCreate a Corezoid environment variable
list-variablesAll variables of the stage: short_name, obj_id, type, title, value
modify-variableChange value/title/data_type or rename; apply=false dry-run first, then apply=true + confirm
delete-variablePermanently delete a variable; apply=false dry-run first, then apply=true + confirm (destructive)
cz-snapshots — manual process checkpoints
ActionPurpose
create-snapshotCreate a snapshot of a process (auto-created before every push-process on existing processes; skipped where the environment has no snapshot support)
list-snapshotsList all snapshots for a process
delete-snapshotDelete a snapshot by snapshot_id
get-snapshotGet snapshot node list for diff comparison against current process
cz-git-context — the git mirror in .git-context/
ActionPurpose
git-pull-contextClone or pull the Corezoid git mirror into .git-context/
git-push-contextCommit and push _ext/ changes to the git mirror
read-context-fileRead a file from .git-context/
update-context-fileWrite or append to a file inside _ext/

Platform Architecture

Corezoid is an event-driven Actor Engine where processes are defined as directed graphs of nodes:

Workspace
  └── Projects
        └── Stages (Root Folder)
              └── Folders (optional)
                    └── Processes (.conv.json)
                          └── Nodes (Start → Logic → End)
                                └── Tasks (data flowing through nodes)

Key concepts:

  • Processes — stored as .conv.json files, named <ID>_<name>.conv.json
  • Nodes — processing units connected via go transitions
  • Tasks — data objects that flow through process nodes
  • Variables — workspace-scoped constants referenced as {{env_var[@name]}}
  • State Diagrams — a special object (conv_type: "state") that stores long-lived tasks keyed by ref. Other processes read with {{conv[<id>].ref[<ref>].<field>}} and write with api_copy mode: "create"/"modify". Allowed node set is restricted to 10 logics (Start, Condition, Code, Set Parameters, Copy Task, Modify Task, Set State, Delay, Queue, End). Use /corezoid-state-diagram-create and /corezoid-state-diagram-edit.

Node Types

Nodeobj_typeLogic typePurpose
Start1goEntry point
Code Node0api_codeJS/Erlang code execution
API Call0apiExternal HTTP request
Call a Process0 (4 when Stub Mode is active)api_rpcInvoke another process; Stub Mode returns configured mock replies instead
Set Parameters0set_paramVariable assignment
Condition0go_if_constBranching logic (business flow; 3 when it is an err_node_id target)
Reply to Process0api_rpc_replyReturn result to caller (3 when it is an err_node_id target)
End / Error2(none)Terminal node

Key Validation Rules

  • Node IDs must be 24-character hex strings: ^[0-9a-f]{24}$
  • Every node that can fail must have err_node_id
  • All constants (URLs, tokens, IDs) must use {{env_var[@variable-name]}} — never hardcoded
  • extra and extra_type keys must match exactly
  • Object values in extra must be stringified JSON strings
  • Active Call Process Stub Mode is obj_type: 4 plus condition.stub; obj_type: 0 with the same condition.stub is inactive and calls the real target process.
  • Use Stub Mode only as a temporary placeholder while the called process is not ready, or as a controlled integration-test fixture. It bypasses the real called process and can hide side effects or fake success in production.
  • push-process treats active Stub Mode as warning-only on a resolved mutable non-production-like stage, but blocks immutable, production-like, or unknown stages unless allow_active_stub_mode=true is passed after explicit confirmation.

Common Operations

Deploy a process

push-process(process_path="./folder/12345_MyProcess.conv.json")

Run a test task

run-task(process_path="./folder/12345_MyProcess.conv.json", data={"key": "value"})

Run a task with no local process file (e.g. a host with no local process repository)

run-task(process_id=12345, data={"key": "value"})

process_id needs no pull-process first — it identifies the process the same way process_path's filename does, just without a file (same argument name pull-process and the cz-tasks actions already use). The cz-snapshots actions accept process_id the same way. Pass exactly one of the two — both together is rejected as ambiguous, and process_id must be greater than zero. These tools still need stage_id/project_id resolved from Corezoid credentials (login, or COREZOID_* env vars — see corezoid-init), even when no local file is used.

Inspect a task by its external reference

cz-tasks {"action": "show-task", "args": {"process_id": 12345678, "ref": "ORDER-4711"}}

Read-only — never scan a node with the list-node-tasks action to find a known ref.

Validate locally without deploying

lint-process(process_path="./folder/12345_MyProcess.conv.json")

Pull a process by ID

pull-process(process_id=12345678)

Specialized Skills

For domain-specific workflows use the specialized skills:

  • /corezoid-init — setting up environment and pulling from Corezoid
  • /corezoid-logout — remove saved Corezoid credentials for the current workspace
  • /corezoid-create — creating a new process from scratch
  • /corezoid-connector-create — connector to an API endpoint (one endpoint = one process): any HTTP API — external, internal, or Corezoid itself
  • /corezoid-edit — modifying an existing process
  • /corezoid-lifecycle — explicitly pause/resume a process or move a process/folder; never inferred from review/refactoring
  • /corezoid-state-diagram-create — creating a new state diagram (conv_type: "state") from scratch
  • /corezoid-state-diagram-edit — modifying an existing state diagram
  • /corezoid-review — auditing and analyzing a single process
  • /corezoid-project-review — auditing an entire project or folder (cross-process analysis)
  • /corezoid-dashboard-manager — creating dashboards and charts for process metrics
  • /corezoid-process-tech-writer — documenting a process (Markdown + enriched JSON)
  • /corezoid-alias-manager — creating, listing, modifying, deleting, and using aliases
  • /corezoid-variable-manager — creating, listing, modifying, deleting variables (visible/secret, raw/json)
  • /corezoid-process-optimizer — reduce tacts (merge nodes), clean data flow, fill names, add semaphors
  • /corezoid-api-connector — build processes that call the Corezoid public API (/api/2/json/) using api_secret_outer
  • /corezoid-retro — end-of-session retrospective: extract learnings (failed→fixed push deltas, data-shape surprises, corrections) and route them to workspace CLAUDE.md, team feedback, settings, or personal memory with user confirmation
  • /corezoid-describe — update or create the description of a process, folder, or project without editing its logic
  • /corezoid-git-context — after a substantial session: analyse changes and update _ext/docs/*.md in the git mirror
  • /corezoid-gen-bot — turn a set of existing processes into a multi-platform messenger bot (Telegram / Viber / Facebook Messenger / Apple Messages for Business): derives each process's real contract, designs the command map, creates the Communications Orchestrator and one bot process per command
  • /corezoid-edit-bot — change a bot that already exists: add/rename/drop a command, wire another process, edit copy or keyboards, promote a stage

Reference Documents

Use the Read tool to load these files when you need deeper detail:

PathWhen to read
${CLAUDE_PLUGIN_ROOT}/docs/node-structures.mdJSON schemas for all node types + full Logics fields reference (canonical)
${CLAUDE_PLUGIN_ROOT}/docs/nodes/set-parameters-built-in-functions.mdBuilt-in functions: $.math, $.date, $.random, $.sha1_hex, $.md5_hex, $.base64_encode, $.unixtime, $.map, $.filter
${CLAUDE_PLUGIN_ROOT}/docs/nodes/set-parameters-dynamic-values.mdDynamic values: {{var}}, {{node[id].count}}, {{node[id].SumID}}, {{conv[@alias].ref[...]}}, {{env_var[@name].key[1]}}
${CLAUDE_PLUGIN_ROOT}/docs/tasks/task-metadata.mdGlobal root.* fields: root.task_id, root.ref, root.conv_id, root.node_id, root.prev_node_id, root.user_id, root.change_time, root.create_time
${CLAUDE_PLUGIN_ROOT}/docs/nodes/code-node.mdCode node details and available JS libraries
${CLAUDE_PLUGIN_ROOT}/docs/nodes/call-process-node.mdCall a Process node, semaphores, cross-folder calls
${CLAUDE_PLUGIN_ROOT}/docs/nodes/api-call-node.mdHTTP API call configuration
${CLAUDE_PLUGIN_ROOT}/docs/nodes/condition-node.mdCondition node (branching logic)
${CLAUDE_PLUGIN_ROOT}/docs/nodes/reply-to-process-node.mdReply formats, object stringification
${CLAUDE_PLUGIN_ROOT}/docs/nodes/end-node.mdEnd node success/error configuration
${CLAUDE_PLUGIN_ROOT}/docs/process/process-json-validation.mdValidation rules and common errors
${CLAUDE_PLUGIN_ROOT}/docs/process/error-handling.mdError handling patterns
${CLAUDE_PLUGIN_ROOT}/docs/process/process-lifecycle-and-move.mdVerified pause/resume semantics, move wire contract, confirmation and cross-stage safety rules
${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-overview.mdState diagram concepts and allowed nodes
${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-node-structures.mdJSON schemas for nodes inside a state diagram
${CLAUDE_PLUGIN_ROOT}/docs/state-diagrams/state-diagram-process-interaction.mdHow driver processes read / create / modify state tasks
${CLAUDE_PLUGIN_ROOT}/docs/variables-guide.mdVariable naming rules, creation workflow, usage examples

Description Update Rule

After any successful change to a process, folder, or project, always set or refresh its description. Full authoring rules are in /corezoid-describe.

Summary:

  • Process — update description in .conv.json root before push-process (no second push needed). 1–2 sentences, start with a verb (Calls, Creates, Validates…), under 200 characters, no "This process…"
  • Folder — call cz-structure action modify-folder with description if the folder was structurally changed. Resolve folder_id from the process's parent or by name via the list-folders action; if unresolvable, skip.
  • Project — call cz-structure action modify-project with description if project scope changed.

Tips

  • Always lint-process before push-process to catch errors early
  • Use pull-folder to sync the full stage to disk before editing
  • Node IDs are 24-char hex — generate with crypto.randomBytes(12).toString('hex')
  • Variables are workspace-scoped — check _ENV_VARS_.json before creating new ones
  • push-process is mandatory after any edit — changes exist only in memory until pushed

Proactive improvement/bug reporting

When responding to a user message that reveals a platform-level mistake — wrong node type, wrong API choice (Corezoid vs Simulator), wrong process structure, wrong MCP tool, missing required platform field — add one line to your response, adapted to the situation:

  • Bug / broken behavior → "Хотите сообщить о баге команде Corezoid?"
  • Unexpected plugin choice → "Хотите сообщить об этом команде Corezoid?"
  • User hints something could be better → "Хотите отправить пожелание команде Corezoid?"

This is one extra line in the same response, not a separate action. Offer once per problem; do not repeat if the user declines.

Do not add this line for business-logic iterations: changing a value, adding a field, renaming, adjusting a condition — these are normal user changes, not platform issues.

Frequently asked questions

What does the Corezoid AI skill do?

Universal Corezoid assistant. Use when the user asks anything about Corezoid processes, wants to work with process JSON files, mentions process nodes, MCP tools, process validation, or any Corezoid-specific task. Also use when the user mentions "Corezoid", "BPM process", "conv.json", "push process", "run task", or asks for general platform knowledge. This skill provides deep knowledge of the platform model and guides you to use the Corezoid MCP tools correctly.

Why use Corezoid on TypingMind?

Because you install it once and use it with any model. Corezoid is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Corezoid in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/corezoid/corezoid-ai-plugin/tree/main/plugins/corezoid/skills/corezoid. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Corezoid?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Corezoid?

As many as you like. As long as a model supports skills, you can use Corezoid with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Corezoid AI skill free?

Yes. It is published on GitHub by corezoid under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇