
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.
- Installs
- 63
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/felo-inc/felo-skills --skill claw-deck- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads claw-deck automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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
| Concept | Description |
|---|---|
| Workspace | One project = one LiveDoc |
| Active Workspace | Session-level state; all operations auto-sync here |
| README | The Agent's memory of the project; Agent maintains proactively |
| Artifacts | Key outputs; Agent asks before saving |
| Tasks | Tracking records for substantive work; Agent maintains silently |
| Registry | ~/.claude/workspaces.json, maps project names to LiveDoc IDs |
Registry format:
{
"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:
- 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."
- User pastes Key → write to config:
Or persist to
export FELO_API_KEY="user's Key"~/.claude/env(platform-dependent). - 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
- Read
~/.claude/workspaces.json, fuzzy-match project name. If not found locally, try$SCRIPT list --keyword. - Found: Set as active →
$SCRIPT get-readme SHORT_ID→ present README as workspace briefing → append linkhttps://felo.ai/livedoc/SHORT_ID?from=claw. If README is empty or missing, fall back to$SCRIPT resources SHORT_IDto show the resource list. - Not found: "No workspace found for '[X]'. Want me to create one?"
2. Create Workspace
$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:
- User sends a message
- Does this message require the Agent to invoke tools to produce new content? (search, generate, collect, analyze, write)
- Yes → immediately
create-task→ execute →update-taskto mark complete - No → execute directly, no task needed
- Yes → immediately
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:
$SCRIPT tasks SHORT_ID --status 0
$SCRIPT tasks SHORT_ID --status 1
Step one — Create task (before doing anything else):
$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):
$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.
| Type | Command |
|---|---|
| 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:
# [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.
$SCRIPT get-readme SHORT_IDto read current content- Locate the target section in memory and insert:
- Project background →
## What This Project Is - User preferences →
## User Preferences & Work Patterns - Progress changes → replace
## Current Progresssection content
- Project background →
- Update
Last updated: YYYY-MM-DDto today's date $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).
$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:
$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
| Error | Action |
|---|---|
| Key missing / 401 UNAUTHORIZED | Trigger Login flow (0a) |
| LiveDoc ID stale | Offer to re-link or create new |
| Registry missing | Auto-create with {"workspaces": {}} |
| Ambiguous fuzzy match | List 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_idfor 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
FAQ
What does the claw-deck 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.
How do I install claw-deck?
Run npx skills add https://github.com/felo-inc/felo-skills --skill claw-deck in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/claw-deck/ (personal) or .claude/skills/claw-deck/ (project).
Which AI agents can use claw-deck?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is claw-deck safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains claw-deck?
It is published by felo-inc in felo-inc/felo-skills. It has 63 recorded installs.
More from felo-inc/felo-skills
felo-slides
felo-inc/felo-skills
Generate PPT/slides from prompts, local images, PDFs, and other files with the Felo PPT Task API. Use when users ask to create, make, generate, or export presentations or slide decks; turn an attached/local file into slides; include an original image in a PPT; or explicitly invoke /felo-slides. Handles file upload, API key checks, task creation, polling, and final ppturl output.
felo-web-fetch
felo-inc/felo-skills
Extract webpage content with Felo Web Extract API. Use for turning URLs into html/markdown/text, selecting specific page areas with CSS selectors, and controlling extraction options like crawl mode, cookies, user-agent, and timeout.
felo-x-search
felo-inc/felo-skills
Search X (Twitter) data using Felo X Search API. Use when users ask about X/Twitter users, tweets, trending topics on X, tweet replies, or when explicit commands like /felo-x-search are used. Supports user lookup, user search, user tweets, tweet search, and tweet replies.
felo-superagent
felo-inc/felo-skills
Felo SuperAgent API: AI conversation with real-time SSE streaming on a persistent LiveDoc canvas. Use when users want SuperAgent chat, continuous conversation, logo/branding design, or e-commerce product images. Do NOT use for tweet/X post writing — use felo-twitter-writer instead. Explicit commands: /felo-superAgent.
felo-content-to-slides
felo-inc/felo-skills
Fetch content from a webpage or YouTube video, then generate a PPT from that content using Felo APIs. Use when the user wants to turn a URL (article/page or YouTube) into a presentation, or explicit /felo-content-to-slides.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.