workspace-manager

Registers, lists, removes, and assigns workspaces (project directories) for Anima work. Use when: binding project paths to Anima, managing aliases, or switching workspace roots.

224 stars

Best use case

workspace-manager is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Registers, lists, removes, and assigns workspaces (project directories) for Anima work. Use when: binding project paths to Anima, managing aliases, or switching workspace roots.

Teams using workspace-manager should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/workspace-manager/SKILL.md --create-dirs "https://raw.githubusercontent.com/xuiltul/animaworks/main/templates/en/common_skills/workspace-manager/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/workspace-manager/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How workspace-manager Compares

Feature / Agentworkspace-managerStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Registers, lists, removes, and assigns workspaces (project directories) for Anima work. Use when: binding project paths to Anima, managing aliases, or switching workspace roots.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Workspace Management

Skill for managing project directories (workspaces) where Animas perform work.

## Concept

An Anima normally lives in its "home" (~/.animaworks/animas/{name}/).
When working on a project, it "goes to the workplace" (workspace) to do the job.

Workspaces are stored in a shared registry (config.json `workspaces` section) and referenced by alias#hash.

## Aliases and Hashes

- Alias: A short name assigned by humans (e.g., `aischreiber`)
- Hash: The first 8 hex digits of the path's SHA-256, auto-generated (e.g., `3af4be6e`)
- Qualified form: `aischreiber#3af4be6e` — zero collision risk
- Tool arguments accept alias only, qualified form, hash only, or absolute path

## Operations

### Register

Add to the workspaces section of config.json:

1. `read_memory_file(path="config.json")` to check current settings
2. Add alias and path to the workspaces section
3. Save with `write_memory_file`

Or run via Bash:
```bash
python3 -c "
from core.workspace import register_workspace
result = register_workspace('alias_name', '/absolute/path/to/project')
print(result)
"
```

**Note**: Registration fails if the directory does not exist.

### List

Read the workspaces section of config.json:
```
read_memory_file(path="config.json")
```

### Remove

Delete the entry from the workspaces section of config.json.

### Change Your Default Workspace

Update the `default_workspace` field in your `status.json`:
1. `read_memory_file(path="status.json")` to check current content
2. Set `default_workspace` to an alias (e.g., `aischreiber`) or qualified form (e.g., `aischreiber#3af4be6e`)
3. `write_memory_file(path="status.json", content=...)` to save

Example:
```json
{
  "default_workspace": "aischreiber#3af4be6e"
}
```

### Assign to Subordinates (for Supervisors)

1. Register the workspace (see above)
2. Update the subordinate's `status.json` `default_workspace` field:
   - `read_memory_file(path="../{subordinate}/status.json")`
   - Set `default_workspace` to the alias
   - `write_memory_file(path="../{subordinate}/status.json", content=...)`

## Tool Usage

- **machine_run**: Specify alias or qualified form in `working_directory`
- **submit_tasks**: Specify alias in each task's `workspace` field
- **delegate_task**: Specify alias in the `workspace` field

## Notes

- Directories are validated both at registration and at resolution time
- Attempting to register a non-existent directory results in an error
- Overwriting an alias changes the hash, so old hash references will fail to resolve
- Humans don't need to remember hashes — alias alone is sufficient

Related Skills

x-search-tool

224
from xuiltul/animaworks

X (Twitter) search tool for keyword search and fetching tweets from a specified account. Use when: searching X for topics, reading a user timeline, or tracking trends and posts.

web-search-tool

224
from xuiltul/animaworks

Web search tool. Queries the public internet via the Brave Search API. Use when: researching current events, finding documentation, fact-checking, or fetching ranked search results.

transcribe-tool

224
from xuiltul/animaworks

Audio transcription tool. Converts audio files to text with Whisper and optional LLM post-processing. Use when: transcribing meetings, podcasts, or extracting text from recorded audio files.

tool-creator

224
from xuiltul/animaworks

Meta-skill for building AnimaWorks Python external tools: ExternalToolDispatcher, get_credential, and permissions. Use when: adding a module under core/tools, wrapping a Web API, or exposing commands via animaworks-tool.

subordinate-management

224
from xuiltul/animaworks

Supervisor tools for subordinate Anima: disable/enable, model changes, restart, delegation, state reads, and audits. Use when: pausing a subordinate, changing main or background models, restarting processes, delegating tasks, or org dashboards.

subagent-cli

224
from xuiltul/animaworks

Runs external AI agent CLIs via Bash in non-interactive mode. Delegates coding with codex exec or cursor-agent. Use when: offloading complex implementation, code review, multi-file edits, or spawning a subagent from Bash.

slack-tool

224
from xuiltul/animaworks

Slack integration tool for send/receive messages, search, unreplied checks, channel listing, and emoji reactions. Use when: posting to Slack, listing channels, replying in threads, checking unreplied items, or adding reactions.

skill-creator

224
from xuiltul/animaworks

Meta-skill for authoring Markdown Skill files with YAML frontmatter and progressive disclosure via create_skill. Use when: adding a new skill, generating SKILL.md with references or templates, or checking description rules.

notion-tool

224
from xuiltul/animaworks

Notion integration tool for searching, reading, creating, and updating pages and databases via the API. Use when: editing Notion pages, adding database rows, or searching a workspace.

machine-tool

224
from xuiltul/animaworks

Delegates work to external agent CLIs (machine tools) for large code changes, investigation, or analysis. Use when: offloading implementation via the machine command, heavy refactors, or batched agent runs.

local-llm-tool

224
from xuiltul/animaworks

Local LLM execution tool for text generation and chat through Ollama or vLLM endpoints. Use when: running on-prem inference, calling a local GPU model, or summarizing with a self-hosted LLM.

image-posting

224
from xuiltul/animaworks

Skill for embedding images in chat replies: URL detection from tool results, Markdown image syntax, and assets paths. Use when: surfacing images from search or generation tools, pasting Markdown images, or showing attachments.