Official agent skill

Space

by microsoft in microsoft/Huabu

Space mental model (the infinite work surface), tool boundaries, and command reference.

OfficialMITAuto-check passed

Install Space

skills CLI
$ npx skills add microsoft/Huabu --skill space -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/Huabu space --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/Huabu.git skills-src && mkdir -p .claude/skills && cp -r skills-src/apps/server/src/prompt/skills/space .claude/skills/space && rm -rf skills-src

Use ~/.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/

Facts

Skill name
space
GitHub stars
157
Token cost
~2.4k tokens
SKILL.md length
1,072 words
Files
3 (incl. references)
Skills in repo
10
Repo updated
First seen
Licence
MIT

At a glance

Space mental model (the infinite work surface), tool boundaries, and command reference.

  • SKILL.md covers A Space has two surfaces, Tool decision matrix, Gotchas and Mutating a Space, plus 1 more section
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Space is an agent skill from microsoft/Huabu, published by the product's own GitHub organization. Space mental model (the infinite work surface), tool boundaries, and command reference. The single entry point for any agent operating on a Huabu Space.

Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/command-cookbook.md` and `references/layout-recipes.md`).

The repository describes itself as: Huabu, where you and your agents think together. The licence is MIT.

Example prompts

  • “/space”

What it can do on your machine

Read from SKILL.md and the folder at commit dc0cfa9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Space loads about 2.4k tokens when it runs, and up to ~7k if it reads all its reference files. Until then it costs about 40 tokens; SKILL.md has 1,072 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~40
When it runs · the whole SKILL.md, loaded when a task matches
~2.4k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~7k

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.

Safety

Auto-check passed

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); files beside SKILL.md are not scanned.

SKILL.md

The full file from microsoft/Huabu at commit dc0cfa9, republished under its MIT licence (© microsoft). 1,072 words, ~2,383 tokens.

Download SKILL.mdSave it as .claude/skills/space/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
space
description
Space mental model (the infinite work surface), tool boundaries, and command reference. The single entry point for any agent operating on a Huabu Space.
appliesTo
ask, operate, external
version
1

Space

The canonical reference for working with a Huabu Space. This file covers the read side: the on-disk layout and the tools that turn it into structured data. Mutation is gated behind a separate tool (space_commands) and a separate reference file — see the Mutating a Space section below.

Schemas are the source of truth. This skill explains semantics and idioms. Field names, types, and required parameters live on the corresponding tool / command schema. When in doubt about a field, trust the schema.


A Space has two surfaces

A Space exposes two complementary surfaces, each owned by its own family of tools. Pick the family by what you want to know, not by which tool feels familiar.

Surface A — A folder of text files

Node text, frontmatter, skill files, memory, history. Read with read, find, ls, grep.

<Space>/
  nodes/
    <safeLabel>.md         # one file per node: YAML frontmatter + Markdown body
  memory/*.md              # long-form, agent-curated memory
  skills/<id>/SKILL.md     # per-Space skill overrides (optional)
  .artifacts/<id><ext>     # raw bytes (image / pdf / video / cover); `read` returns images inline, rejects pdf / video
  .history/                # saved threads, event log (rarely needed)

A node's filename is deterministically derived from its label and kept in 1:1 sync, so when you have the label you can build the path yourself:

nodes/<safeLabel>.md

safeLabel = the label with characters \ / : * ? " < > | (and ASCII control chars) replaced by _. Spaces, hyphens, parentheses, dots, and any other character are kept verbatim — do not substitute them. Only leading/trailing dots and spaces are stripped, and the result is truncated to 120 chars. Empty / missing labels fall back to the stable nodeId.

Examples:

labelsafeLabelpath
Dolphin MigrationDolphin Migrationnodes/Dolphin Migration.md
Notes (draft)Notes (draft)nodes/Notes (draft).md
Foo: Bar / BazFoo_ Bar _ Baznodes/Foo_ Bar _ Baz.md
trailing.trailingnodes/trailing.md
  • Have the label → read("nodes/<safeLabel>.md") directly. Don't find first when you already have the label — build the path.
  • Have only the nodeId → find("nodes/*.md") or grep (results carry nodeId, label, nodeType); the stable id also lives in each file's id: frontmatter.
  • A direct read returns ENOENT (rare — usually means the label was just edited mid-flight) → fall back to find / grep.
Surface B — Layout & connectivity data (space.json)

Where each node sits, how big it is, which frame it belongs to, what colour it's painted; every edge's endpoints and style. Stored as one space.json per Space, served through get_space_outline, inspect_nodes, inspect_edges. These tools also expose derived fields you can't read off disk — distance, direction, hops, clusterId, arrangement — computed on the fly from the same data, which is why you should query through them rather than read("space.json") and parse it yourself.

Boundary rule of thumb
PropertyTool
label, content, summary, keywords, srcread / grep
position, size, parentFrame, visual styleinspect_nodes
edge direction / lineStyle / strokeinspect_edges
whole-Space overview, spatial clustersget_space_outline

Tool decision matrix

QuestionTool
"Give me the lay of the land"get_space_outline()
"What does this node say?"read("nodes/<safeLabel>.md")
"Where is this node? How big? In which frame?"inspect_nodes({ ids: ["<id>"] })
"What's near this node?"inspect_nodes({ nearNode: { id } })
"What connects to this node?"inspect_nodes({ connectedTo: { id } })
"What does that edge look like?"inspect_edges({ ids: ["<edgeId>"] })
"Which nodes mention 'gradient descent'?"grep
"List all PDFs"find("**/*.pdf") or inspect_nodes({ byType: "pdf" })
"Load a deeper Space reference"read("skills/space/references/<name>.md")

Gotchas

Behaviour the schema can't convey:

  • ** Selection & Position Geometry (CRITICAL):** The selected-node / anchor context DOES NOT directly contain position, size, parent frame, or geometry coordinates. If you need to place a new node near, relative to, or offset from a selected or anchor node, you MUST first call inspect_nodes({ ids: ["<anchorId>"] }) (or get_space_outline) to query its geometry.
  • Coordinates — idioms. Each node carries two coordinate fields (defined on the inspect_nodes / space_commands schemas): writable parent-local position and read-only world absolutePosition. Practical placement: to put a child next to a sibling in the same frame, add an offset to the sibling's position; to place a root node near some reference, use the reference's absolutePosition (root-local == world); to align a framed child to something outside its frame, submit target.absolutePosition − thisFrame.absolutePosition. Into a column/row/grid (structured) frame, position is only a sort hint — the frame owns the final slot. In grid mode position does not decide rows either: pass cells on SET_FRAME_LAYOUT to place children, giving paired children the same row.
  • Nodes in context are metadata only. Pass a node's supplied file path straight to read for the body. Only when a node is mentioned outside your context (e.g. it appears in a Space snapshot but wasn't shown as a <node>) do you build the path yourself via the safeLabel rule above. For spatial / structural info (including position), call inspect_nodes({ ids: ["<id>"] }).
  • Cross-Space reads are World-only. Tools default to the conversation's Space. In a World conversation, first read the World outline, take targetCanvasId from a canonical spacePreview, then pass it to get_space_outline, inspect_nodes, inspect_edges, read, grep, find, or ls. The target must be a live ordinary Space addressed by exactly one canonical preview. snapshot_nodes remains owner-scoped because it materializes cache artifacts; use read with targetCanvasId to view source images inline. This never grants cross-Space writes; space_commands remains World-scoped.
  • read returns image artifacts inline as vision content: pass an image node's frontmatter src straight to read, OR — for an inline ![](<key>) image embedded in a note body — call read(".artifacts/<key>") to see it. PDF / video bytes still live under .artifacts/ but are not readable — their src URL is the only handle.
  • Before placing new nodes, anchor on the selection / a referenced node / a focal cluster — never pick coordinates from the global bbox alone, or new nodes land outside the user's viewport. If setting size, inspect and match comparable nearby nodes; with no comparable peer, omit it and use the canonical default. See layout-recipes.md for long-Note and per-type sizing rules.
Show full SKILL.md (181 more words)Show less

Mutating a Space

The filesystem tools (read, find, ls, grep) are read-only — there is no write / edit_file / rm. Every mutation flows through one tool: space_commands.

  • If space_commands is not in your available tool list → you are in read-only mode. Do not attempt mutations and do not claim in your reply that you performed any.
  • If space_commands is available → the tool's own schema and description carry the full command set, the id / dependency-ordering rule, and per-field behaviour. For composed multi-command recipes see command-cookbook.md; for diagram geometry see layout-recipes.md.
  • Commands are not guaranteed to succeed. Each command in a call reports its own outcome in results[]; on failure it carries a reason (e.g. invalid-target when a CONNECT / SET_NODE_PARENT endpoint doesn't exist). Read it and adjust — don't assume a write landed.

Deeper dives

Load on demand when the situation calls for it:

  • read("skills/space/references/command-cookbook.md") — composed batch patterns: brainstorm, merge / synthesize, group into a frame, restyle a cluster, tidy a row, …
  • read("skills/space/references/layout-recipes.md") — coordinate system, hierarchical / left-to-right / grid layouts, frames (including when to pick the row-aligned grid frame mode over column), and the row-track flowchart / roadmap recipe.

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in apps/server/src/prompt/skills/space of microsoft/Huabu.

  • SKILL.md
  • references/command-cookbook.md
  • references/layout-recipes.md

Open the folder on GitHubat commit dc0cfa9

Compare with similar skills

Space 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.

Space compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Space this skillmicrosoft/Huabu157—~2.4kAutomated safety check: PassMIT
Isolated Space Boundaryopenchamber/openchamber11k—~2kAutomated safety check: PassMIT
Workspace Surface Auditaffaan-m/ECC274k3 repos~1.3kAutomated safety check: NotesMIT
Maintain Spaceasgeirtj/system_prompts_leaks69k—~1.6kAutomated safety check: PassCC0-1.0
Organize Spaceasgeirtj/system_prompts_leaks69k—~1.6kAutomated safety check: PassCC0-1.0
Huggingface Spacessickn33/agentic-awesome-skills47k1 repos~3.9kAutomated safety check: PassApache-2.0

Similar skills

  • Isolated Space Boundary

    openchamber/openchamber

    A skill your agent uses when changing isolated-space trust boundaries: container hardening, networks and gatekeeper policy, exec and lifecycle, grants and credentials, code transfer and apply…

    11k GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Audit the active repo, MCP servers, plugins, connectors, env surfaces, and harness setup, then recommend the highest-value ECC-native skills, hooks, agents, and operator workflows.

    274k GitHub starsUsed in 3 repos~1.3k tokens
    Agent WorkflowsAuto-check: notes
  • Maintain Space

    asgeirtj/system_prompts_leaks

    Reconcile new evidence into existing ChatGPT Pages or a Space when the user requests upkeep.

    69k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Organize Space

    asgeirtj/system_prompts_leaks

    Organize existing ChatGPT Pages and Space structure when the user requests changes to that structure.

    69k GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Huggingface Spaces

    sickn33/agentic-awesome-skills

    Build, deploy, and maintain applications on Hugging Face Spaces — Gradio / Docker / Static SDKs, ZeroGPU and dedicated hardware, model loading, debugging, buckets, inference providers, community…

    47k GitHub starsUsed in 1 repo~3.9k tokens
    AI & LLM EngineeringAuto-check passed
  • Copilot Spaces

    github/awesome-copilot

    Official

    Use Copilot Spaces to provide project-specific context to conversations.

    40k GitHub starsUsed in 1 repo~2.2k tokens
    Knowledge ManagementAuto-check passed

More from microsoft/Huabu

All 10 skills in this repo
  • Code Review Expert

    microsoft/Huabu

    Official

    Expert code review of current git changes with a senior engineer lens.

    157 GitHub starsUsed in 2 repos~1.5k tokens
    Auto-check passed
  • Release

    microsoft/Huabu

    Official

    Use ONLY when the user explicitly asks to cut/publish a Huabu desktop release or tag a version.

    157 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Official

    Review the quality of an agent's tool descriptions, system/agent prompts, or SKILL.md files against current agent-engineering best practices.

    157 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Review Huabu Agent

    microsoft/Huabu

    Official

    Review the Huabu operate agent's three steering artifacts at their fixed repo locations — system prompt, tool descriptions, and skills.

    157 GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Issue Tracker

    microsoft/Huabu

    Official

    Coordinate one or more GitHub issues through isolated Git worktrees, durable Huabu Tasks, and dedicated Fixing Agent Threads.

    157 GitHub stars~279 tokensUpdated today
    Auto-check passed
  • Deepv Slides Maker

    microsoft/Huabu

    Official

    Create and revise editable slide decks, PowerPoint files, and slide images with DeepV.

    157 GitHub stars~276 tokensUpdated today
    Auto-check: notes

Questions about Space

What does Space do?

Space mental model (the infinite work surface), tool boundaries, and command reference. Space is an agent skill from microsoft/Huabu, published by the product's own GitHub organization. Space mental model (the infinite work surface), tool boundaries, and command reference.

How do I install Space in Claude Code?

Run `npx skills add microsoft/Huabu --skill space -a claude-code`. Or copy the skill folder (apps/server/src/prompt/skills/space in microsoft/Huabu) into .claude/skills/space in your project. Claude Code loads it when a task matches its description.

How do I install Space in Codex?

Run `npx skills add microsoft/Huabu --skill space -a codex`. Or copy the skill folder (apps/server/src/prompt/skills/space in microsoft/Huabu) into .agents/skills/space in your project. Codex loads it when a task matches its description.

Can I use Space in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/Huabu --skill space -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/space, .gemini/skills/space, .github/skills/space and .opencode/skills/space in your project.

What does Space need to run?

SKILL.md names no scripts, command-line tools or credentials: Space is instructions for the agent only.

Does Space access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Space safe to install?

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. Review the folder before installing.

What licence does Space use?

Space is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Space use?

About 2.4k tokens (SKILL.md is roughly 9.5k 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 4.7k tokens, read only when the agent opens those files.

What are the alternatives to Space?

Skills that share tags, products or a category with Space: Isolated Space Boundary (openchamber/openchamber, 11k stars), Workspace Surface Audit (affaan-m/ECC, 274k stars), Maintain Space (asgeirtj/system_prompts_leaks, 69k stars) and Organize Space (asgeirtj/system_prompts_leaks, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Space?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/Huabu, which has 157 GitHub stars. The repository holds 10 skills in this directory. The repository was last updated on October 7, 2026.

Source: microsoft/Huabu on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.