duotify/githubclawtoolkit/felo-superagent
Claude Code and agent skill by duotify/githubclawtoolkit
- community
Checking that the SKILL.md file is still in the repository.
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. CRITICAL: When user provides ANY image/product description (e.g. '生成一張...產品照片', '我的提示詞為: 生成...', 'generate a product photo'), ALWAYS call the API to generate the actual image — NEVER rewrite the prompt as text output. Do NOT use for tweet/X post writing — use felo-twitter-writer instead. Explicit commands: /felo-superagent.
Install
npx vskill@latest install duotify/githubclawtoolkit/felo-superagentSKILL.md
Felo SuperAgent Skill
Constraints (MUST READ FIRST)
These rules are mandatory. Violating any of them will produce incorrect behavior.
- NEVER treat image/product descriptions as prompt-writing or prompt-optimization tasks. If the user's message contains a visual description — regardless of phrasing such as "我的提示詞為", "my prompt is", "生成一張", "generate a photo of", "create a product image" — you MUST call the felo-superAgent API immediately to generate the actual image. Do NOT:
- Rewrite, refine, or "improve" the description as a text output
- Suggest keywords or aspect ratios as your final response
- Write a better prompt to result.md instead of calling the API
- Describe what you would do instead of doing it
The ONLY correct response to an image/product generation request is to execute the skill (run run_superagent.mjs with --skill-id ecommerce-product-image or logo-and-branding) and output the resulting image URLs. If you find yourself writing text about the image instead of calling the API, stop and call the API.
- ALWAYS use `--json` flag. The script MUST run in JSON mode (
--json). In Claude Code's Bash tool, stdout is always captured — it never streams directly to the user. JSON mode returns the full answer in a structured response that Claude can then output as text. State IDs are extracted from the JSON response fieldsthread_short_idandlive_doc_short_id.
- ALWAYS output the answer and all tool results. After the script finishes: (a) print
data.answerverbatim as your response text — do NOT summarize or paraphrase; (b) render every entry indata.image_urlsas a Markdown inline imageimmediately after the answer — NEVER skip image URLs; (c) list any entries indata.discoveries,data.documents,data.ppts,data.htmls.
- `--live-doc-id` is optional for the first call.
run_superagent.mjsworks without--live-doc-id— the API will auto-assign a LiveDoc and return itslive_doc_short_idin the JSON response. On the FIRST call in a session (no live_doc_id known yet), you MAY omit--live-doc-id. After the first call, always reuse the returnedlive_doc_short_id(see Constraint #4 and Step 2).
- Reuse `live_doc_id` from ANY source. If you already have a
live_doc_idfrom any previous operation in this session — whether from a prior SuperAgent call's JSON response (data.live_doc_short_id), user-provided input, or any other skill — use it directly. Do NOT try to fetch LiveDoc list via felo-livedoc (it may not be installed). Only omit--live-doc-idwhen you truly have no ID from any source. (Note:live_doc_idcorresponds to the API fieldlive_doc_short_idand the[state]output keylive_doc_short_id.)
- One LiveDoc per session. All conversations within a session MUST use the same
--live-doc-id. Do NOT create a new LiveDoc unless the user explicitly asks to "open a new canvas" / "start a new LiveDoc" / "create a new workspace".
- Default behavior is follow-up, not new conversation. After the first question, every subsequent user message is a follow-up. You MUST pass
--thread-idfrom the previous response. Only omit--thread-id(to start a new thread on the same LiveDoc) when:
- The user explicitly says "new topic" / "change subject" / "start over"
- The user's intent requires a specific
--skill-id(e.g., tweet writing, logo design, product image) and the current thread was not created with that skill — because--skill-idonly takes effect in new conversations
- Always persist state. After every call, extract
thread_short_idandlive_doc_idfrom the stderr[state]line (wherelive_doc_idis output aslive_doc_short_id). Use them in the next call. Losing these IDs breaks conversation continuity.
- Skill ID selection (New Conversations Only). When creating a new conversation (no
--thread-id), analyze the user's intent and determine if it matches one of the supported skill IDs:
Available skill IDs:
twitter-writer— For composing, drafting, or posting tweets/X postslogo-and-branding— For creating logos, brand designs, or visual identityecommerce-product-image— For generating product images for e-commerce use
Selection logic:
- If the user explicitly requests a specific skill-id, use their specified value
- If the user's intent clearly matches one of the above, pass
--skill-idwith that value - If none of the above match, do NOT pass
--skill-id(general conversation mode) --skill-idis only effective when creating a new conversation. It is ignored in follow-up mode (--thread-id).
- Brand style selection for skill-based new conversations. When starting a NEW conversation that uses a skill ID (
twitter-writer,logo-and-branding,ecommerce-product-image), you MUST fetch the style library and let the user choose a style BEFORE callingrun_superagent.mjs. The chosen style is passed via--ext '{"brand_style_requirement":"<style_string>"}'. See Step 4.5 for the full procedure.
- The style string is the exact text block output by
run_style_library.mjsfor that entry. Fields vary by category: - TWITTER:
Style name+Style labels(language-aware) +Style DNA+Cover file ID(omitted if null) - IMAGE:
Style name+Style labels+Style DNAorCover file IDdepending on what is present - Use the category that matches the skill:
TWITTERfortwitter-writer,IMAGEforlogo-and-brandingandecommerce-product-image. - Always pass
--accept-languagetorun_style_library.mjsso labels are returned in the user's language. - If the user has already specified a style (by name or by pasting the style block), skip the fetch and use their choice directly.
- If the style library returns no entries, proceed without
--ext. --extis only valid for new conversations. Never pass it in follow-up mode (--thread-id).
- Never create a new LiveDoc casually. Reuse the existing one. The only exception is an explicit user request for a new canvas/workspace.
When to Use
Trigger this skill when users want:
- SuperAgent conversation: AI conversation with Felo SuperAgent, with real-time streaming output
- Continuous conversation: Multi-turn Q&A on a persistent LiveDoc canvas
- Logo & branding: Create logos or brand designs (auto-selects
logo-and-brandingskill) - E-commerce images: Generate product images for e-commerce use (auto-selects
ecommerce-product-imageskill). This includes any request where the user provides a visual description and wants an AI-generated product photo — e.g., "生成一張…產品照片", "generate a photo of a leather wallet", "幫我生成一張商品圖" - Image generation from description: Any request where the user describes a scene, product, or visual concept and expects an actual AI-generated image as output — NOT a text description or prompt refinement
- Tool-augmented answers: Responses that may include image generation, document creation, PPT generation, or Twitter/X search
- Streaming responses: Real-time answer generation with Server-Sent Events (SSE)
⚠️ IMPORTANT — Do NOT misinterpret image requests as prompt-writing tasks. If the user provides a visual description and asks to "生成"/"generate"/"create" an image or photo, ALWAYS call the felo-superAgent API with --skill-id ecommerce-product-image. Do NOT respond with refined text prompts or suggestions — execute the skill and output the generated image URLs.
Trigger words:
- English: superagent, super agent, stream chat, streaming conversation, livedoc conversation, continuous chat, follow-up question, create a logo, brand design, product image, e-commerce image, generate image, generate photo, product photo, product shot
- 繁體中文:超級助手、串流對話、連續對話、追問、設計 logo、品牌設計、電商圖片、商品圖片、商品照片、產品照片、產品圖片、生成圖片、生成照片、生圖、AI 生圖、AI 作圖、製作圖片、電商產品圖
- 简体中文:超级助手、流式对话、连续对话、追问、设计 logo、品牌设计、电商图片、商品图片、商品照片、产品照片、产品图片、生成图片、生成照片、生图、AI 生图
- Japanese (romaji): suupaa eejento, sutoriimingu kaiwa, keizoku kaiwa, rogo sakusei, shouhin gazou, gazou seisei, shouhin shashin
Explicit commands: /felo-superagent, "use felo superagent", "felo superagent"
Do NOT use for:
- Tweet/X post writing of any kind (use
felo-twitter-writerinstead) - Simple one-off Q&A or real-time information queries (prefer
felo-search) - Web page content fetching only (use
felo-web-fetch) - PPT/slide generation only (use
felo-slides) - LiveDoc knowledge base management only (use
felo-livedoc) - Twitter/X search only (use
felo-x-search)
Setup
1. Get Your API Key
- Visit felo.ai and log in (or register)
- Click your avatar in the top right corner → Settings
- Navigate to the "API Keys" tab
- Click "Create New Key" to generate a new API Key
- Copy and save your API Key securely
2. Configure API Key
The scripts (run_superagent.mjs, run_style_library.mjs) read the API key only from the `FELO_API_KEY` environment variable. The felo config set CLI command writes to ~/.felo/config.json which these scripts do NOT read — environment variable is the only supported method.
Linux/macOS:
For permanent configuration, add to your shell profile (~/.bashrc or ~/.zshrc):
Windows (PowerShell):
Windows (CMD):
3. Dependency: felo-livedoc (Optional)
felo-livedoc is NOT required. run_superagent.mjs can be called without --live-doc-id on the first call — the API auto-assigns a LiveDoc and returns its ID in the response for reuse.
How to Execute
When this skill is triggered, follow these steps strictly in order. Execute all commands using the Bash tool.
Step 1: Check API Key
If not set, stop and show the user the setup instructions above.
Step 2: Obtain live_doc_id
(Note: live_doc_id corresponds to the API field live_doc_short_id.)
2a. If you already have a `live_doc_id` from ANY source in this session: Skip to Step 3. Reuse the same ID. Sources include: a previous SuperAgent call's JSON response (data.live_doc_short_id), user-provided input, or any other skill that returned a LiveDoc ID.
2b. If no `live_doc_id` is available — proceed to Step 3 WITHOUT `--live-doc-id`. The API will auto-assign a LiveDoc. After the call completes, capture data.live_doc_short_id from the JSON response and reuse it in all subsequent calls.
2c. If the user explicitly requests a new canvas/workspace: Simply omit --live-doc-id in the next call. A new LiveDoc will be created automatically.
Step 3: Determine Conversation Mode
Decide whether this is a new conversation or a follow-up:
| Condition | Mode | What to pass | |
|---|---|---|---|
First question in session (no thread_short_id yet) | New conversation | --live-doc-id if known, omit if not | |
| User asks a follow-up / continues the topic (DEFAULT) | Follow-up | --thread-id AND --live-doc-id | |
| User explicitly says "new topic" / "change subject" | New conversation | --live-doc-id only (same LiveDoc) | |
User's intent requires a --skill-id not matching current thread | New conversation | --live-doc-id + --skill-id (same LiveDoc) | |
| User explicitly says "new canvas" / "new LiveDoc" | New conversation | Omit --live-doc-id (API creates new one) |
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/felo-superAgent/SKILL.md
Popularity
- Repository stars
- 249
- Repository forks
- 52
- 7-day trend score
- 28
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 28 Jun 2026, 4 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/duotify/githubclawtoolkit/felo-superagent)