Managing MCP Index
Comfy-Org/workflow_templates
Builds and maintains templates/index.mcp.json for Comfy Cloud MCP tools.
Create, convert, or repair one Tutti workspace app as either a self-contained publishable package under package/ or a Chrome-style local debug app under .tutti/dev-app/.
$ npx skills add tutti-os/tutti --skill tutti-workspace-app-factory -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tutti-os/tutti tutti-workspace-app-factory --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/tutti-os/tutti.git skills-src && mkdir -p .claude/skills && cp -r skills-src/services/tuttid/service/workspace/app_factory_reference .claude/skills/tutti-workspace-app-factory && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "tutti-workspace-app-factory" agent skill from https://github.com/tutti-os/tutti/tree/main/services/tuttid/service/workspace/app_factory_reference into .claude/skills/tutti-workspace-app-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tutti-workspace-app-factory", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/tutti-os/tutti/tree/main/services/tuttid/service/workspace/app_factory_referenceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add tutti-os/tutti --skill tutti-workspace-app-factory -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tutti-os/tutti tutti-workspace-app-factory --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tutti-os/tutti.git skills-src && mkdir -p .agents/skills && cp -r skills-src/services/tuttid/service/workspace/app_factory_reference .agents/skills/tutti-workspace-app-factory && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "tutti-workspace-app-factory" agent skill from https://github.com/tutti-os/tutti/tree/main/services/tuttid/service/workspace/app_factory_reference into .agents/skills/tutti-workspace-app-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tutti-workspace-app-factory", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tutti-os/tutti --skill tutti-workspace-app-factory -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tutti-os/tutti tutti-workspace-app-factory --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tutti-os/tutti.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/services/tuttid/service/workspace/app_factory_reference .cursor/skills/tutti-workspace-app-factory && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "tutti-workspace-app-factory" agent skill from https://github.com/tutti-os/tutti/tree/main/services/tuttid/service/workspace/app_factory_reference into .cursor/skills/tutti-workspace-app-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tutti-workspace-app-factory", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/tutti-os/tutti.git --path services/tuttid/service/workspace/app_factory_reference--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add tutti-os/tutti --skill tutti-workspace-app-factory -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tutti-os/tutti tutti-workspace-app-factory --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tutti-os/tutti.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/services/tuttid/service/workspace/app_factory_reference .gemini/skills/tutti-workspace-app-factory && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "tutti-workspace-app-factory" agent skill from https://github.com/tutti-os/tutti/tree/main/services/tuttid/service/workspace/app_factory_reference into .gemini/skills/tutti-workspace-app-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tutti-workspace-app-factory", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install tutti-os/tutti tutti-workspace-app-factoryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add tutti-os/tutti --skill tutti-workspace-app-factory -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tutti-os/tutti.git skills-src && mkdir -p .github/skills && cp -r skills-src/services/tuttid/service/workspace/app_factory_reference .github/skills/tutti-workspace-app-factory && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "tutti-workspace-app-factory" agent skill from https://github.com/tutti-os/tutti/tree/main/services/tuttid/service/workspace/app_factory_reference into .github/skills/tutti-workspace-app-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tutti-workspace-app-factory", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add tutti-os/tutti --skill tutti-workspace-app-factory -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tutti-os/tutti tutti-workspace-app-factory --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tutti-os/tutti.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/services/tuttid/service/workspace/app_factory_reference .opencode/skills/tutti-workspace-app-factory && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "tutti-workspace-app-factory" agent skill from https://github.com/tutti-os/tutti/tree/main/services/tuttid/service/workspace/app_factory_reference into .opencode/skills/tutti-workspace-app-factory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "tutti-workspace-app-factory", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
tutti-workspace-app-factoryCreate, convert, or repair one Tutti workspace app as either a self-contained publishable package under package/ or a Chrome-style local debug app under .tutti/dev-app/.
Tutti Workspace App Factory is an agent skill from tutti-os/tutti. Create, convert, or repair one Tutti workspace app as either a self-contained publishable package under package/ or a Chrome-style local debug app under .tutti/dev-app/. Use for mention://workspace-app-factory/create handoffs, mention://workspace-app-factory handoffs, standalone app generation, adapting existing repositories, Load unpacked repair flows for invalid local project directories, tutti.app.json and tutti.cli.json manifests, bootstrap.sh scripts, package-local AGENTS.md, local HTTP runtimes, TUTTIAPP…
Its SKILL.md is about 5.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 25 other files, including scripts and reference files (for example `agents/openai.yaml`, `references/cli-manifest-contract.md` and `references/demos/simple-node-static-app/AGENTS.md`).
It sits in Agent Workflows, covering Internationalization. It works with Model Context Protocol. The repository describes itself as: Where people and agents build in tune. The licence is Apache-2.0.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 207beee. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Shell and JavaScript, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
tsxuvicorncargoFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
raw.githubusercontent.comapi.github.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Tutti Workspace App Factory loads about 5.9k tokens when it runs, and up to ~20k if it reads all its reference files. Until then it costs about 163 tokens; SKILL.md has 2,940 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from tutti-os/tutti at commit 207beee, republished under its Apache-2.0 licence (© tutti-os). 2,940 words, ~5,880 tokens.
.claude/skills/tutti-workspace-app-factory/SKILL.md (or your agent's skills folder). This skill also uses 18 other files; get the full folder from GitHub.Use this skill to create, convert, or repair one Tutti workspace app. Choose one output mode before editing:
package/, runnable by the Tutti custom app runtime and safe to copy into a workspace app archive..tutti/dev-app/ wrapper that launches the user's existing source tree through the Chrome-style "Load unpacked" flow.When the user selected a directory in App Center and Tutti reports that it cannot be loaded, treat the task as local debug repair. Adapt the selected project by creating or fixing .tutti/dev-app/; do not create a zip wrapper or copy the repository into package/ unless the user explicitly asks for release packaging.
For a full agent-enabled Tutti app repository with apps/web, apps/server, packages/shared, @tutti-os/agent-acp-kit, kit-owned TUTTI_CLI agent/composer discovery, dynamic local agent runtimes, MCP tool gateways, and an app-owned package builder, use $tutti-agent-workspace-app first. Return to this skill for the final package contract and validation. Do not invent managed-agent credential, cwd, JSB fallback, request-body credential, CODEX_HOME, CLI argv, app ID, token, or provider alias behavior in this factory skill; the agent app skill keeps those concerns in server-side kit calls.
If the user request needs local agent or local LLM execution, the Tutti agent catalog, or app-owned MCP/tooling, load $tutti-agent-workspace-app and read its references/dynamic-agent-providers.md and references/agent-acp-kit.md. Agent-enabled apps must use a Node server and @tutti-os/agent-acp-kit; do not implement app-owned local agent execution by shelling out to raw $TUTTI_CLI agent ... commands, provider-specific command families, or session polling.
Before generating, repairing, or validating an app package, perform a best-effort freshness check unless the user asks to skip network access or the environment is offline.
Fetch the current published skill body:
https://raw.githubusercontent.com/tutti-os/tutti-agent-skills/main/skills/tutti-workspace-app-factory/SKILL.mdCompare the fetched content with the local SKILL.md that loaded this skill. Prefer a content hash comparison when filesystem access is available. If the local skill path is unavailable, fetch the latest repository commit instead:
https://api.github.com/repos/tutti-os/tutti-agent-skills/commits?per_page=1If the published skill differs from the local copy, state this at the start of the reply before doing other work:
This Tutti skill has a newer version available. I can continue with the currently loaded copy, but updating first is recommended so the latest manifest rules and runtime guidance are used.
Update the Codex plugin marketplace:
codex plugin marketplace upgrade tutti-agent-skills
Update the direct skill install:
npx --yes skills add tutti-os/tutti-agent-skillsIf the user has explicitly asked to update local installs, or if the current task is itself about keeping the skill current, run the update commands that are available in the environment before continuing. Tell the user that newly installed skill content may take effect only after the next skill reload or new session.
If the freshness check fails because network access, GitHub, codex, or npx is unavailable, mention the check was skipped or failed briefly and continue the requested Tutti app work.
If the current working directory contains context.json, or the task includes mention://workspace-app-factory/create or mention://workspace-app-factory, operate in Tutti factory handoff mode. Read context.json before writing files, then follow its metadata, output rules, workspace context, and constraints exactly. Do not copy the context file into generated app outputs.
If context.json is absent, operate in standalone mode. Treat the current working directory as the app authoring workspace. If the user asks for local debugging, Load unpacked support, or repair of a selected project directory, create or update .tutti/dev-app/. Otherwise, if the directory already contains an app or repository, adapt it into a self-contained Tutti package under package/; if it does not, create a new self-contained package under package/. Infer missing metadata conservatively from the user request.
For publishable packages, the package root is the only generated app output directory; files outside it are scratch or coordination files and will not be published. For local debugging, .tutti/dev-app/ is the generated dev app directory and the surrounding project source remains owned by the user repository.
Treat a mention://workspace-app-factory/create or mention://workspace-app-factory link as the factory handoff. In handoff mode, use the exact metadata, output rules, workspace context, and constraints from context.json as authoritative.
Before writing files, read these bundled references:
references/manifest-contract.md for tutti.app.json.references/cli-manifest-contract.md for tutti.cli.json when exposing app capabilities to the Tutti ecosystem.references/runtime-env.md for runtime environment variables and storage ownership.references/i18n-harness.md when the app has localized metadata, user-facing in-app copy, or an existing localization system.references/tutti-cli-commands.md when the generated app runtime should call, combine, or expose local Tutti CLI capabilities.references/validation-checklist.md for completion checks.Read references/demos/simple-node-static-app/ only when you need a concrete complete package shape. Do not copy its demo app id, display name, description, or tags unless the user explicitly asks for the demo itself.
For a publishable package, create or update these files under output.packageRoot from the context in handoff mode, or under package/ in standalone mode:
tutti.app.json: valid JSON manifest matching references/manifest-contract.md.tutti.cli.json: CLI manifest matching references/cli-manifest-contract.md, required when the user asks to connect the app to the Tutti ecosystem; otherwise create it only when tutti.app.json declares cli.manifest.bootstrap.sh: backward-compatible executable shell entrypoint that starts the app server with no arguments.bin/<platform>/ when the package supports Windows or uses the standalone profile; keep all supported artifacts in the same fat package and select them from bootstrap.sh using TUTTI_PLATFORM.AGENTS.md: package-local guidance describing layout, runtime command, endpoints, data storage, and modification rules.locales/<locale>/manifest.json: manifest metadata localization files, only when the user asks for localized app metadata.For a local debug app, create or update these files under .tutti/dev-app/ instead of package/:
tutti.app.json: local debug manifest.tutti.cli.json: CLI manifest matching references/cli-manifest-contract.md, only when the app exposes capabilities or tutti.app.json declares cli.manifest.bootstrap.sh: executable shell entrypoint that reads the host-injected port and starts the source dev server.AGENTS.md: dev-app guidance describing the project root, dev/watch command, host/port contract, source hot-reload ownership, and how to reload from App Center.Keep .tutti/dev-app/ small. It should describe and launch the local app, not copy the whole project. Tutti Desktop can load either the .tutti/dev-app/ directory directly or the project root that contains it.
If the task supplies exact metadata such as appId, version, display name, or description, copy those values exactly into tutti.app.json. If metadata is missing, choose conservative defaults:
schemaVersion: tutti.app.manifest.v1version: 0.1.0appId: app_ plus a lowercase hyphenated slug from the app name or requestdescription: one concise sentence describing actual app behavioricon: package-local asset, preferably {"type":"asset","src":"icon.svg"}runtime.bootstrap: bootstrap.shruntime.bootstrap: the single cross-platform package entrypoint. Keep it POSIX-compatible and use TUTTI_PLATFORM when a fat package needs to select a platform-native binary.runtime.healthcheckPath: /healthzlocalizationInfo: omit unless the user asks for localized app metadata; when needed, follow references/manifest-contract.md and create each referenced locale file.If the user asks to connect the app to the Tutti ecosystem, expose at least one app capability through tutti.cli.json and declare it from tutti.app.json. If the app has a UI, include a business-level open command when there is a meaningful target to open, such as open-project, open-file, open-run, or open-context. The command should own the full self-open flow: accept stable domain identifiers, validate them, map them to an app-owned origin-root route, and request opening this same app through $TUTTI_CLI with an argv list equivalent to --json app open --app-id "$TUTTI_APP_ID" --route .... --json is the CLI machine-readable output flag. Do not return route parameters for a caller or agent to interpret and then call app open; that makes the integration chain too indirect. Do not expose raw frontend route construction as the public contract; callers should invoke the app's business open command without needing to know the app's internal router.
Build a small local HTTP app. Default newly generated apps to a Node server. Use Python only when adapting an existing Python project or when the user explicitly requests Python. Agent-enabled apps must use a Node server because @tutti-os/agent-acp-kit is Node-only.
The runtime must:
$TUTTI_APP_HOST:$TUTTI_APP_PORT, defaulting the host to 127.0.0.1 only when the host variable is absent.$TUTTI_APP_PORT is absent. Do not guess, reserve, or hard-code a fallback port; the daemon owns port allocation.$TUTTI_APP_PACKAGE_DIR as read-only after startup.$TUTTI_APP_DATA_DIR.$TUTTI_APP_DATABASE_DIR. The directory is host-local and durable for the installation; apps may create multiple databases beneath it.$TUTTI_APP_RUNTIME_DIR.$TUTTI_APP_LOG_DIR when backend/server-side file logs are needed.$TUTTI_APP_TOOLCHAIN_ROOT.window.tuttiExternal?.logs?.write?.() for browser-side diagnostics in Tutti Desktop; reserve $TUTTI_APP_LOG_DIR for backend process logs.$TUTTI_WORKSPACE_ID and $TUTTI_CLI for explicit workspace-scoped capabilities, and treat caller-supplied absolute file paths as opaque inputs rather than deriving a root from them.$TUTTI_APP_PYTHON and Node with $TUTTI_APP_NODE; use $TUTTI_APP_NPM for npm install/build work.window.tuttiExternal?.workspace?.onLaunchIntent?.(...).$TUTTI_CLI and follow references/tutti-cli-commands.md.references/i18n-harness.md so future edits can check locale parity.prefers-color-scheme / matchMedia("(prefers-color-scheme: dark)") for dark/light rendering. Do not pass theme in the launch URL query.location objects scoped to app-data-relative or app-package-relative. Do not emit, persist, or instruct clients to open direct .tutti / .tutti-dev app state paths such as $TUTTI_STATE_DIR/apps/...; the daemon resolves valid locations before desktop clients open files.For a full agent-enabled app repository, prefer $tutti-agent-workspace-app first. When this skill still needs to package or repair an app that already uses @tutti-os/agent-acp-kit, keep the app in control of agent policy:
@tutti-os/agent-acp-kit runtime path product-neutral. Tutti-specific agent catalog, composer, and skill discovery stays behind the explicit @tutti-os/agent-acp-kit/tutti subpath; app code owns only product policy and DTO projection.@tutti-os/agent-acp-kit/tutti helper instead of hand-writing $TUTTI_CLI agent tutti-cli-skill-bundle execution and response parsing in each app.loadTuttiAgentSkillContext(...) from the app host process. Pass the selected agent target id, run id, workspace cwd, and optional Tutti CLI command configuration such as commandEnvNames; provider is derived from the selected catalog entry.tuttiContext.skillManifest into runtime.run({ ..., skillManifest }), merging it with app-owned skills when needed.tuttiContext.recommendedSystemPrompt?.content as advisory raw prompt content. The app may merge it into its own systemPrompt, edit it, place it elsewhere, or ignore it. Do not inject it silently, and do not reintroduce duplicated CLI parsing unless the installed kit lacks the helper.Agent app main flows must call loadTuttiAgentCatalog and lazy loadTuttiAgentComposerOptions from @tutti-os/agent-acp-kit/tutti. Do not use the deprecated provider-catalog projection because it cannot represent multiple agents sharing a provider. The kit automatically uses TUTTI_CLI inside Tutti and standalone runtime detection when the CLI is absent. App code must not pass a mode, app ID, daemon URL, token, provider alias map, or CLI arguments. Follow $tutti-agent-workspace-app and its references/dynamic-agent-providers.md. Show every returned agent, persist exact agent target ids, keep unavailable agents disabled with a reason, and treat provider as derived runtime metadata. A configured CLI failure is explicit; never synthesize a fixed catalog.
Do not assume a Tutti API token, browser extension, daemon internals, or
undocumented desktop APIs. Generated apps may consume the documented
window.tuttiExternal browser surfaces described in references/runtime-env.md.
Use agentActivity only when the app intentionally orchestrates the official
host-owned Agent GUI runtime, such as a provider test lab; do not use it to
rebuild an app-owned Agent runtime. Apps that own their Agent policy or runtime
must still follow $tutti-agent-workspace-app and
@tutti-os/agent-acp-kit.
Avoid startup-time package installation. If dependencies or build artifacts are necessary, add an executable prepare.sh and keep bootstrap.sh focused on launching the prepared app. prepare.sh may use $TUTTI_APP_PYTHON, $TUTTI_APP_NODE, and $TUTTI_APP_NPM for install and build steps.
Generated apps must not rely on system python, python3, node, or npm commands. Use the explicit managed runtime environment variables instead.
Keep generated apps small and inspectable. Do not add frameworks, background workers, databases, or network services unless they are required by the user request. Use Node built-ins for small apps; for larger Node servers with many routes, middleware, schemas, streaming, or WebSocket needs, Fastify is a good default and Express is acceptable when it already matches the project. For React/Tailwind UI apps, use shadcn/ui components and Tailwind CSS utilities instead of hand-rolled component markup and ad hoc CSS. Do not migrate a small vanilla app solely to use shadcn/ui unless the user explicitly asks for that frontend stack.
Use this workflow when the user asks for local app debugging, load-unpacked behavior, or direct development against an existing Next/Vite/Node/Python repository.
.tutti/dev-app/tutti.app.json, .tutti/dev-app/bootstrap.sh, and .tutti/dev-app/AGENTS.md.package/.bootstrap.sh, read $TUTTI_APP_HOST and $TUTTI_APP_PORT; exit with a clear error if the port is missing. The daemon owns port allocation.PROJECT_ROOT="$(cd "$TUTTI_APP_PACKAGE_DIR/../.." && pwd)", then cd "$PROJECT_ROOT" before launching.-H "$TUTTI_APP_HOST" -p "$TUTTI_APP_PORT", or run backend servers through their watch mode such as tsx watch, nodemon, uvicorn --reload, air, or cargo watch. Do not depend on daemon-side framework detection.dev:tutti rather than adding daemon-side source watching..tutti/dev-app/ files as host contract configuration. Changes to tutti.app.json, tutti.cli.json, bootstrap.sh, assets, or dev-app AGENTS.md require App Center's local-dev Reload action so the daemon rereads the manifest and restarts the runtime when needed.$TUTTI_APP_NODE and $TUTTI_APP_NPM for Node-based dev servers. Do not call system node, npm, pnpm, or yarn directly from bootstrap.sh unless the user explicitly owns that dependency and accepts the portability tradeoff..tutti/dev-app/ in .tutti/dev-app/AGENTS.md.scripts/check_local_dev_app.py <project-root-or-.tutti/dev-app> from this skill after creating or repairing .tutti/dev-app/. Fix every reported failure before saying the local debug repair is complete..tutti/dev-app/. Do not auto-open a Tutti app window.The old zip/wrapper conversion approach is a fallback for compatibility or release packaging work only. Do not recommend it for normal local debugging; prefer .tutti/dev-app/ plus Load unpacked.
When converting an existing repository into a Tutti workspace app package:
.tutti/dev-app/ instead of a package wrapper.package/ that copies the smallest runnable subset of the existing project. Do not reference source files outside package/, and do not rewrite the original repository outside package/ unless the user explicitly asks.bootstrap.sh. If the project needs install or build work for a publishable package, put that in executable prepare.sh and keep bootstrap.sh launch-only.references/runtime-env.md.tutti.cli.json; otherwise, if the project already exposes commands, convert the stable user-facing commands into tutti.cli.json.localizationInfo for manifest metadata and the i18n harness from references/i18n-harness.md for in-app copy.AGENTS.md or .tutti/dev-app/AGENTS.md.references/validation-checklist.md; for .tutti/dev-app/, run scripts/check_local_dev_app.py <project-root-or-.tutti/dev-app> and then validate any project-specific startup behavior manually.bootstrap.sh executable.scripts/validate_tutti_app_package.py <package-root> when available, then validate remaining runtime behavior against references/validation-checklist.md.scripts/check_local_dev_app.py <project-root-or-.tutti/dev-app> from this skill, then validate remaining project-specific startup behavior manually.When fixing an existing draft:
appId unless the user explicitly asks to change it.AGENTS.md when endpoints, data files, commands, or storage rules change.© tutti-os, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 18 other files (scripts, references) in services/tuttid/service/workspace/app_factory_reference of tutti-os/tutti.
Open the folder on GitHubat commit 207beee
Tutti Workspace App Factory next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Tutti Workspace App Factory this skilltutti-os/tutti | 3.8k | — | ~5.9k | Automated safety check: Pass | Apache-2.0 | |
| Managing MCP IndexComfy-Org/workflow_templates | 1.3k | — | ~1.9k | Automated safety check: Notes | MIT | |
| Diagnosing MCPzai-org/ZCode | 7.7k | — | ~2.8k | Automated safety check: Pass | Apache-2.0 | |
| Frontend Build Timing Auditopenops-cloud/openops | 1.1k | — | ~2.3k | Automated safety check: Pass | Custom licence | |
| Add UI Stringopenfootmanager/openfootmanager | 1.1k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Declarative Agent Developermicrosoft/work-iq | 1k | — | ~3.2k | Automated safety check: Pass | Custom licence |
Comfy-Org/workflow_templates
Builds and maintains templates/index.mcp.json for Comfy Cloud MCP tools.
zai-org/ZCode
A skill your agent uses to diagnose and fix ZCode MCP (Model Context Protocol) server configuration problems in the ZCode client.
openops-cloud/openops
Detects and diagnoses chunk-evaluation timing bugs in the Vite/rolldown production build of react-ui (works-in-dev / broken-in-build i18n regressions, missing UI labels, module-scope t()…
openfootmanager/openfootmanager
Add or change any text a player can see, in every locale the game ships in.
microsoft/work-iq
Create, build, deploy, and localize declarative agents for M365 Copilot and Teams.
Moosync/Moosync
Expert guidance for building, debugging, and working with Slint GUI applications.
tutti-os/tutti
A skill your agent uses when working with @tutti-os/ui-system components, replacing local UI with shared components, querying component ids or metadata, promoting UI into shared base or business…
tutti-os/tutti
Analyze Chrome, Chromium, Electron, React DevTools, or Perfetto-compatible JSON traces and audit user-reported profiling findings without loading large artifacts into context; prove…
tutti-os/tutti
From a Tutti checkout, run, audit, freshly replay, publish, or diagnose Session Replay cassettes that are driven by case-repository scenario scripts (CDP), not by interactive UI recording.
tutti-os/tutti
Build or evolve a complex agent-enabled Tutti workspace app repository.
tutti-os/tutti
Review tutti git diffs for project structure, layering, module ownership, and duplicate event-center infrastructure by planning focused architecture review tasks, then having the main agent…
tutti-os/tutti
Set up, review, run, or debug external repositories that publish a Tutti workspace app through the reusable Tutti App Release GitHub Actions workflow.
Works with
Categories
Create, convert, or repair one Tutti workspace app as either a self-contained publishable package under package/ or a Chrome-style local debug app under .tutti/dev-app/. Tutti Workspace App Factory is an agent skill from tutti-os/tutti.tutti/dev-app/.
Tutti Workspace App Factory fits situations like: mention://workspace-app-factory/create handoffs; mention://workspace-app-factory handoffs; standalone app generation; adapting existing repositories.
Run `npx skills add tutti-os/tutti --skill tutti-workspace-app-factory -a claude-code`. Or copy the skill folder (services/tuttid/service/workspace/app_factory_reference in tutti-os/tutti) into .claude/skills/tutti-workspace-app-factory in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tutti-os/tutti --skill tutti-workspace-app-factory -a codex`. Or copy the skill folder (services/tuttid/service/workspace/app_factory_reference in tutti-os/tutti) into .agents/skills/tutti-workspace-app-factory in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add tutti-os/tutti --skill tutti-workspace-app-factory -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tutti-workspace-app-factory, .gemini/skills/tutti-workspace-app-factory, .github/skills/tutti-workspace-app-factory and .opencode/skills/tutti-workspace-app-factory in your project.
Going by SKILL.md and its folder, Tutti Workspace App Factory needs a shell and JavaScript for the scripts in its folder and the command-line tools its instructions call (tsx, uvicorn and cargo). Our summary lists: Python 3; Node.js; A Bash shell.
SKILL.md names 2 domains. In commands or code: raw.githubusercontent.com and api.github.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Tutti Workspace App Factory is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.9k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 14k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Tutti Workspace App Factory: Managing MCP Index (Comfy-Org/workflow_templates, 1.3k stars), Diagnosing MCP (zai-org/ZCode, 7.7k stars), Frontend Build Timing Audit (openops-cloud/openops, 1.1k stars) and Add UI String (openfootmanager/openfootmanager, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tutti-os (a GitHub organization) maintains it in tutti-os/tutti, which has 3,811 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 8, 2026.
Source: tutti-os/tutti on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.