Claw Deck logo

Claw Deck

Organization
Felo-Inc
claw-deck

Use when users need to manage ClawDeck project workspaces backed by Felo LiveDoc — creating, loading, switching workspaces, saving artifacts, querying history, or managing tasks. Triggers on workspace-related intent combined with project/client names, or on 401 UNAUTHORIZED errors from Felo API.

Overview

PublisherFelo-Inc
Repositoryfelo-skills
Skill nameclaw-deck
Stars
248
Forks
23
Bundled files
Instructions only
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 Felo-Inc on GitHub. Read the source before you install it.

Installation

Install the Claw Deck 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/Felo-Inc/felo-skills/tree/main/claw-deck
  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/Felo-Inc/felo-skills.git /tmp/felo-skills
mkdir -p .claude/skills
cp -r /tmp/felo-skills/claw-deck .claude/skills/claw-deck
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Claw Deck 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 Claw Deck 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 Claw Deck 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.

ClawDeck — Workspace Manager

The Agent's external brain for projects. Once active, the Agent continuously syncs tasks, artifacts, and knowledge to the corresponding LiveDoc, so anyone (including future sessions or colleagues) can load the workspace and immediately get full context.

Core Concepts

ConceptDescription
WorkspaceOne project = one LiveDoc
Active WorkspaceSession-level state; all operations auto-sync here
READMEThe Agent's memory of the project; Agent maintains proactively
ArtifactsKey outputs; Agent asks before saving
TasksTracking records for substantive work; Agent maintains silently
Registry~/.claude/workspaces.json, maps project names to LiveDoc IDs

Registry format:

json
{
  "workspaces": {
    "client-acme": "abc123",
    "project-x": "def456"
  }
}

Script Shorthand

In all commands below, $SCRIPT refers to:

node felo-livedoc/scripts/run_livedoc.mjs

When NOT to Use

  • Simple chitchat or clarifying questions
  • One-off generation unrelated to any project/workspace
  • User has not installed the Felo LiveDoc NPM package

Workflows

0. First-Time Installation

User pastes GitHub install link → execute installation → after completion, automatically enter Login flow (0a).

0a. Login / Re-authorization

Trigger conditions (either one):

  • First-time installation, Key not yet configured
  • Any API call returns {"status":401,"code":"UNAUTHORIZED","message":"Invalid API Key"}

Flow:

  1. Send login link:

    "Please click the link to log in / register a Felo account: https://felo.ai/settings/api-keys Once done, paste the Key back to me and I'll complete the setup automatically."

  2. User pastes Key → write to config:
    bash
    export FELO_API_KEY="user's Key"
    Or persist to ~/.claude/env (platform-dependent).
  3. Verify: $SCRIPT list
    • Pass + first install → show usage introduction (see "First-Time Usage Introduction" below)
    • Pass + re-authorization → "✅ Authorization updated." → retry the failed command
    • Fail → "Invalid Key, please paste again."

First-Time Usage Introduction (show only on first install; skip on re-authorization):

"🎉 Setup complete! You can now use the following commands to manage workspaces:

📁 Create workspace — Create a standalone workspace for a new project Example: 'Create a workspace called Client Acme'

📂 Load workspace — Open an existing project, restore context Example: 'Load the Acme workspace'

📋 View workspace — List all projects or view project contents Example: 'What workspaces do I have?' / 'What's in the Acme workspace?'

💾 Save artifacts — Important outputs will prompt you to save

The workspace records everything we do. You can view it anytime on the web: https://felo.ai"

1. Load Workspace

  1. Read ~/.claude/workspaces.json, fuzzy-match project name. If not found locally, try $SCRIPT list --keyword.
  2. Found: Set as active → $SCRIPT get-readme SHORT_ID → present README as workspace briefing → append link https://felo.ai/livedoc/SHORT_ID?from=claw. If README is empty or missing, fall back to $SCRIPT resources SHORT_ID to show the resource list.
  3. Not found: "No workspace found for '[X]'. Want me to create one?"

2. Create Workspace

bash
$SCRIPT create --name "Project Name" --description "workspace"

Extract short_id → initialize README (see "README Structure Template" below) → update registry → set as active → reply:

"✅ Workspace '[X]' created. 📎 https://felo.ai/livedoc/SHORT_ID?from=claw"

3. Task Sync (Mandatory)

Iron rule: When the workspace is active, if the user's request requires the Agent to invoke tools to produce new content (search, generate, analyze, etc.), the very first step is always create-task — before doing anything else.

Decision flow:

  1. User sends a message
  2. Does this message require the Agent to invoke tools to produce new content? (search, generate, collect, analyze, write)
    • Yes → immediately create-task → execute → update-task to mark complete
    • No → execute directly, no task needed

Requires task creation (invoking tools to produce new content):

  • "Collect client info on Mr. Zhang" → requires search + generation
  • "Add 10 horror TikTok videos" → requires search + adding content
  • "Write a competitive analysis report" → requires generation
  • "Search for recent gold price trends" → requires search

Does NOT require task creation (workspace operations):

  • "Load Mr. Zhang's workspace" → workspace operation
  • "What's in my workspace?" → viewing workspace
  • "Refresh the workspace" / "Create a new workspace" → workspace management
  • "Save that report" → saving artifacts
  • "Update the README" / "Rename the workspace" → workspace maintenance
  • Chitchat, clarifying questions

On load: Pull pending and in-progress tasks:

bash
$SCRIPT tasks SHORT_ID --status 0
$SCRIPT tasks SHORT_ID --status 1

Step one — Create task (before doing anything else):

bash
$SCRIPT create-task SHORT_ID --title "Task description" --status 1 --sort 0 [--operated-by "Agent Name"]

Save the returned task_id in working memory.

--title should be a one-line summary of what the user wants done, e.g.:

  • User says "Collect info on Mr. Zhang" → --title "Collect client info on Mr. Zhang"
  • User says "Add 10 horror videos" → --title "Add 10 horror TikTok trending videos"

--operated-by rules:

  • Only pass it if the Agent has been given a name in this session (e.g. an OpenClaw agent with an assigned name)
  • Omit it if no explicit name (e.g. a plain Claude Code session)

Last step — Mark complete (immediately after execution):

bash
$SCRIPT update-task SHORT_ID TASK_ID --status 2 [--operated-by "Agent Name"]

(--operated-by rule same as above — pass it when the Agent has a name.)

Execute silently — do not narrate the task sync to the user. If you forgot to create a task before starting, create it retroactively and mark it DONE immediately. Never skip it.

4. Save Artifacts (Ask First)

After producing significant output, ask the user: "Want me to save this to the [project] workspace?"

Significant artifacts = research reports, competitive analyses, meeting summaries, generated documents, key data exports. Intermediate drafts do not need to be saved.

TypeCommand
Document$SCRIPT add-doc SHORT_ID --title "Title" --content "content"
URL$SCRIPT add-urls SHORT_ID --urls "URL"
File$SCRIPT upload SHORT_ID --file ./path --convert

After saving, reply:

"💾 Saved '[Title]' 📎 https://felo.ai/livedoc/SHORT_ID?from=claw"

5. README Maintenance

The README is the Agent's memory of the project — not a work log. Agent maintains proactively, no need to ask the user.

README Structure Template:

markdown
# [Project Name]

## What This Project Is
[Project background, objectives, stakeholders]

## User Preferences & Work Patterns
[How the user likes to work, what dimensions they care about, specific requirements]

## Current Progress
[Where things stand now — updated each session]
Last updated: YYYY-MM-DD

When to update README — core question: Did this operation bring any new understanding?

Update (new understanding):

  • When the project is first created — record "what this project is about"
  • When the user expresses preferences or work patterns — record "how the user wants to work" (e.g. collection dimensions, focus areas, format requirements)
  • When the project's nature or direction changes

Do NOT update (repeated execution):

  • Same-pattern repeated operations (e.g. after collecting info on Mr. Zhang, collecting info on Mr. Li using the same pattern — no update needed)
  • The mere fact of executing an action (generating a document is not worth recording by itself)

Update method: Read → merge in memory into the correct section → write back in full. Never blindly append to the end.

  1. $SCRIPT get-readme SHORT_ID to read current content
  2. Locate the target section in memory and insert:
    • Project background → ## What This Project Is
    • User preferences → ## User Preferences & Work Patterns
    • Progress changes → replace ## Current Progress section content
  3. Update Last updated: YYYY-MM-DD to today's date
  4. $SCRIPT update-readme SHORT_ID --content "..." to write back

Initialization (README is empty or missing): Skip step 1, write the full skeleton directly with update-readme.

After updating, inform the user:

"📝 README updated. 📎 https://felo.ai/livedoc/SHORT_ID?from=claw"

6. Query Workspace

Prefer resources + content (direct read, free) over retrieve (LLM-based semantic search, costs money).

bash
$SCRIPT resources SHORT_ID
$SCRIPT content SHORT_ID RESOURCE_ID
$SCRIPT retrieve SHORT_ID --query "question"   # fallback

Synthesize returned content into a direct answer. Do not dump raw results.

7. Refresh Workspace

When the user says "refresh", or when the workspace may have been updated externally (by a colleague or another session), re-fetch:

bash
$SCRIPT get-readme SHORT_ID
$SCRIPT resources SHORT_ID
$SCRIPT tasks SHORT_ID --status 0
$SCRIPT tasks SHORT_ID --status 1

Update the in-memory snapshot. Tell the user: "Workspace refreshed." If anything changed, briefly describe the differences (new resources, README updates, new tasks).

8. List Contents

$SCRIPT resources SHORT_ID, grouped by type, artifacts newest first.


Session State

ACTIVE_WORKSPACE = { name: "project-x", short_id: "abc123" }
  • Set when user loads or creates a workspace; clear when user says "close workspace"
  • If no active workspace and user tries to save/log/query/task: "No active workspace. Which project?"

Error Handling

ErrorAction
Key missing / 401 UNAUTHORIZEDTrigger Login flow (0a)
LiveDoc ID staleOffer to re-link or create new
Registry missingAuto-create with {"workspaces": {}}
Ambiguous fuzzy matchList all matches, ask user to pick

Important Rules

  • Write all content in the user's language — Chinese if they speak Chinese, English if English
  • Always use short_id for all LiveDoc operations
  • Execute commands immediately — don't describe, do
  • Task sync and README updates are the Agent's responsibility — proactive, not reactive
  • Append workspace link after every write operation

Frequently asked questions

What does the Claw Deck AI skill do?

Use when users need to manage ClawDeck project workspaces backed by Felo LiveDoc — creating, loading, switching workspaces, saving artifacts, querying history, or managing tasks. Triggers on workspace-related intent combined with project/client names, or on 401 UNAUTHORIZED errors from Felo API.

Why use Claw Deck on TypingMind?

Because you install it once and use it with any model. Claw Deck 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 Claw Deck in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Felo-Inc/felo-skills/tree/main/claw-deck. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Claw Deck?

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 Claw Deck?

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

Is the Claw Deck AI skill free?

It is published on GitHub by Felo-Inc. Check the repository for licensing terms. 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 👇