
ima-copilot
Installs, diagnoses, repairs, and personalizes the official Tencent IMA skill (a wrapper around upstream ima-skill, not a replacement), including fan-out search across IMA knowledge bases with priority boosting. Use when the user mentions IMA / 腾讯 IMA / ima-skill, needs IMA API key setup, 知识库搜索 / 笔记搜索, imports URLs into a KB to extract content, or hits "Skipped loading skill(s) due to invalid SKILL.md" (ima-skill's missing-YAML-frontmatter bug).
- Installs
- 1.6K
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/daymade/claude-code-skills --skill ima-copilot- 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 ima-copilot 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.
IMA Copilot
One-command installer, troubleshooter, and personalization layer for the official Tencent IMA skill.
Overview
The official Tencent IMA skill (ima-skill) exposes a powerful OpenAPI for notes and knowledge base operations, but its installation flow is designed for a specific proprietary agent and recent releases have shipped submodule files that fail strict SKILL.md loaders. IMA Copilot solves both problems:
- Installs ima-skill to Claude Code, Codex, and OpenClaw in a single command via the vercel-labs/skills open installer.
- Walks the user through API key setup with a live validation call.
- Detects known upstream issues and — with explicit user consent — fixes them in place, without ever forking, vendoring, or mirroring any part of the upstream package.
- Provides a fan-out search strategy that respects user-configured knowledge base priorities and boosts, with awareness of the 100-result per-KB truncation limit.
Architectural principles (do not violate)
This skill is a wrapper layer around ima-skill. The wrapper contract is non-negotiable:
- Never vendor upstream files. This skill directory does not contain any copy, fork, or excerpt of ima-skill's own content. When ima-skill ships a new release, users get the new release without any interference from this wrapper.
- Repairs happen at runtime, not at ship time. If an upstream bug needs patching, this skill carries the instructions for how to patch, not the patched files. Running a repair is idempotent: rerunning after an upstream update re-detects and re-fixes anything that came back.
- Always ask before touching upstream files. Modifying
~/.claude/skills/ima-skill/**,~/.agents/skills/ima-skill/**, or any other upstream install directory requires explicit user consent via AskUserQuestion. No silent patching. - Teach rather than hide. When a fix is applied, show the user exactly what changed and where the backup was saved. This is how users learn to maintain their own installs.
What this skill does
| Capability | Entry point | Detail |
|---|---|---|
| 1. Install upstream ima-skill to 3 agents | scripts/install_ima_skill.sh | See references/installation_flow.md |
| 2. Configure API credentials (XDG style) | Inline workflow below | See references/api_key_setup.md |
| 3. Diagnose and fix known upstream issues | scripts/diagnose.sh + workflow below | See references/known_issues.md |
| 4. Fan-out search with priority boosting | scripts/search_fanout.py | See references/search_best_practices.md |
| 5. Import URLs and extract page content as structured text | OpenAPI import_urls + notes API | See references/import_and_extract.md |
Routing
When this skill is triggered, classify the user's intent and jump to the corresponding capability:
| User says something like… | Go to |
|---|---|
| "装 ima"、"install ima-skill"、"把 ima 装一下"、"我想用 ima" | Capability 1 |
| "配 ima 的 key"、"configure ima credentials"、"ima API key" | Capability 2 |
| "ima 报错"、"SKILL.md warning"、"frontmatter 错误"、"ima 加载失败" | Capability 3 |
| "搜 X"、"在 ima 里搜 X"、"跨知识库搜索"、"扇出搜 X" | Capability 4 |
| "把这批链接导进 ima 并整理成结构化内容"、"import URLs into a knowledge base"、"让 ima 读这些页面" | Capability 5 |
| "帮我从头跑一遍 ima" | 1 → 2 → 3 → 4 in sequence |
When in doubt, start with Capability 3 (diagnose) — it surfaces exactly which capabilities are blocked and in what order.
Capability 1: Install upstream ima-skill
The installer downloads the latest official release from https://app-dl.ima.qq.com/skills/, stages it in a temp directory, and hands off to npx skills add <local-path> to distribute it across Claude Code, Codex, and OpenClaw.
To run it:
bash scripts/install_ima_skill.sh
The script auto-detects which of the three target agents are installed on the user's machine. For agents that are not present, it skips silently rather than installing anywhere the user hasn't opted in. For agents that are present, it installs globally (-g) in vercel skills' default symlink mode: the first detected agent's directory becomes the canonical copy, and the remaining agents are symlinked to it. This means a repair or an upgrade applied once propagates automatically to every agent — diagnose.sh detects this sharing and dedupes its reports so you don't see the same issue multiple times.
For a version override, detection logic, troubleshooting, and the full file-by-file layout produced by the installer, read references/installation_flow.md.
Capability 2: Configure API credentials
Credentials are stored in XDG style, decoupled from any agent's skill directory:
~/.config/ima/client_id(mode600)~/.config/ima/api_key(mode600)~/.config/ima/(mode700)
Environment variables IMA_OPENAPI_CLIENTID and IMA_OPENAPI_APIKEY act as fall-back overrides — the wrapper reads the environment first, then the config file.
Step through the setup with the user:
- Open
https://ima.qq.com/agent-interfaceand create a new Client ID and API Key. - Write both values into the XDG config path (or export the environment variables).
- Make a single liveness call against
https://ima.qq.com/openapi/wiki/v1/search_knowledge_basewith{"query": "", "cursor": "", "limit": 1}to confirm the credentials are accepted — acode: 0, msg: successresponse means ready.
The full script and the exact request/response schema lives in references/api_key_setup.md.
Capability 3: Diagnose and fix known issues
This is the reason this skill exists. The upstream package has real bugs that break loading on certain agents, and the fixes are well-understood but need user consent to apply. The diagnose/repair workflow is the core contract of this skill.
Step 1 — Run the read-only diagnosis
bash scripts/diagnose.sh
diagnose.sh never modifies any file. It prints a structured report with one line per check:
✅ upstream ima-skill installed (claude-code)
✅ upstream ima-skill installed (codex)
❌ upstream ima-skill NOT installed (openclaw)
✅ API credentials valid (search_knowledge_base returned 12 KBs)
⚠️ ISSUE-001: notes/SKILL.md missing YAML frontmatter (claude-code)
⚠️ ISSUE-001: knowledge-base/SKILL.md missing YAML frontmatter (claude-code)
⚠️ ISSUE-001: notes/SKILL.md missing YAML frontmatter (codex)
⚠️ ISSUE-001: knowledge-base/SKILL.md missing YAML frontmatter (codex)
Step 2 — Parse the report and ask the user
For each ⚠️ or ❌ line, look up the issue in references/known_issues.md. That file is the source of truth for:
- What the issue is (symptom, root cause)
- Which repair strategies exist (
A,B,skip) - The exact shell commands for each strategy
- What files each strategy touches
- Why the upstream maintainer probably hasn't fixed it yet
Step 3 — Ask for explicit consent before touching upstream files
Use AskUserQuestion for every issue that has more than one repair strategy. Frame it plainly — the user may not know what "YAML frontmatter" means. Describe what the bug does to them in user terms ("loader skips two files silently, so note-search and knowledge-base-search don't actually work"), then describe each strategy in terms of the outcome, not the mechanism.
Never offer a single "just fix it" option when multiple strategies exist. The user's pick may legitimately differ based on factors the skill cannot observe — e.g., they might prefer Strategy B (minimal diff) if they plan to manually compare with upstream.
Step 4 — Execute the chosen strategy
Every repair command in references/known_issues.md is written to be:
- Idempotent — rerunning after the fix is already applied does nothing harmful and prints a clear "already fixed" message.
- Backed up — the repair copies the original file to
/tmp/ima-copilot-backups/<timestamp>/<relative-path>before modifying anything, then tells the user the backup location. - Reversible — the user can restore from the backup with a single
cpcommand shown at the end.
Step 5 — Re-run diagnose to confirm
After the repair, run diagnose.sh a second time and show the user the diff. The issue should flip from ⚠️ to ✅. If it does not, stop and surface the raw before/after to the user instead of silently retrying — unexpected failures here usually mean upstream shipped an unforeseen change.
An important note about upstream updates
Every repair is temporary in the sense that ima-skill upgrades replace everything. This is by design: the skill does not fight upstream for persistent state. When the user upgrades ima-skill via Capability 1, Step 4 of diagnose will again flag the fixed issue, and the user can rerun the repair. This is a feature, not a bug — if upstream eventually fixes the issue, the repair becomes unnecessary and diagnose.sh will report ✅ with no prompt.
Capability 4: Personalized fan-out search
IMA's OpenAPI has three hard constraints that any serious search workflow must account for:
- No cross-knowledge-base endpoint.
search_knowledgerequires a singleknowledge_base_idper call. Cross-KB search is a client-side fan-out, not an API feature. - No relevance score in results.
info_listitems only carrymedia_id,title,parent_folder_id, andhighlight_content. Any ranking beyond insertion order must happen on the client. - Silent 100-result truncation.
search_knowledgereturns at most 100 hits per KB with nois_endornext_cursorfield in the response. High-frequency queries are silently capped.
scripts/search_fanout.py implements the full workaround:
python3 scripts/search_fanout.py "<query>"
The script reads ~/.config/ima/copilot.json for personalization (priority KBs, skip list, strategy), calls search_knowledge_base to enumerate KBs, fans out search_knowledge calls in parallel, detects truncation by exact-100 length match, and renders results grouped by KB with priority groups at the top.
The personalization file is per-user and private. This skill ships only a template — see config-template/copilot.json.example. A user with no config file gets a neutral default: fan out all accessible KBs, sort groups by hit count, no boosting.
For the full algorithm, truncation handling strategy, rendering format, and a walkthrough of the evidence-based decision to allow a "subset KB skip" (e.g., a curated KB that is a strict subset of a master KB can be safely skipped to reduce duplicate hits), read references/search_best_practices.md.
Capability 5: Import URLs and extract content
When the pages to read are ones the local machine cannot fetch but IMA's servers can, import them with wiki/v1/import_urls and have IMA turn them into JSON that is saved as a note and read back over the API. Imports write to the user's account and no delete endpoint is documented, so confirm the target knowledge base and URL list with the user first. Read references/import_and_extract.md before starting: it lists which capabilities were not found in the upstream ima-skill docs (delete, full entry body read) and why extraction goes through the desktop app, how entries resolve asynchronously, the extraction protocol and its measured failure modes (unescaped quotes, truncated rounds, empty placeholder objects), and the desktop-app automation traps.
What this skill refuses to do
- Never vendor upstream content. This directory does not contain and will never contain a copy of
ima-skill/SKILL.md,ima-skill/notes/**,ima-skill/knowledge-base/**, or any other upstream file. Anyone adding such files to this skill should be rejected. - Never pin an upstream version in SKILL.md. The installer script carries a default version for fallback purposes, but SKILL.md itself is version-agnostic to survive upstream releases without requiring a skill bump.
- Never silently patch upstream files. Every modification path requires an explicit AskUserQuestion and the user's active choice.
- Never hardcode a user's knowledge base names. The
priority_kbsandskip_kbsfields incopilot.jsonare 100% user-configured. Example values inconfig-template/copilot.json.exampleare illustrative only. - Never skip the backup step when executing a repair, no matter how trivial the diff.
File layout
ima-copilot/
├── SKILL.md # This file — entry and routing
├── scripts/
│ ├── install_ima_skill.sh # Download → stage → npx skills add to 3 agents
│ ├── diagnose.sh # Read-only health report
│ └── search_fanout.py # Fan-out search with priority grouping
├── references/
│ ├── installation_flow.md # Capability 1 deep dive
│ ├── api_key_setup.md # Capability 2 deep dive
│ ├── known_issues.md # Issue registry — source of truth for repairs
│ ├── search_best_practices.md # Capability 4 deep dive
│ └── import_and_extract.md # Capability 5 deep dive
└── config-template/
└── copilot.json.example # Template for ~/.config/ima/copilot.json
FAQ
What does the ima-copilot skill do?
Installs, diagnoses, repairs, and personalizes the official Tencent IMA skill (a wrapper around upstream ima-skill, not a replacement), including fan-out search across IMA knowledge bases with priority boosting. Use when the user mentions IMA / 腾讯 IMA / ima-skill, needs IMA API key setup, 知识库搜索 / 笔记搜索, imports URLs into a KB to extract content, or hits "Skipped loading skill(s) due to invalid SKILL.md" (ima-skill's missing-YAML-frontmatter bug).
How do I install ima-copilot?
Run npx skills add https://github.com/daymade/claude-code-skills --skill ima-copilot 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/ima-copilot/ (personal) or .claude/skills/ima-copilot/ (project).
Which AI agents can use ima-copilot?
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 ima-copilot 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 ima-copilot?
It is published by daymade in daymade/claude-code-skills. It has 1,590 recorded installs.
More from daymade/claude-code-skills
twitter-reader
daymade/claude-code-skills
Fetches Twitter/X post and Article content — text, author, engagement metrics and embedded media — downloading images locally and generating complete Markdown with image references. Use when retrieving a tweet's text or an X Article with images, or pulling post metadata for a Markdown/PKM record. Preferred over Jina alone for X Articles with images.
i18n-expert
daymade/claude-code-skills
This skill should be used when setting up, auditing, or enforcing internationalization/localization in UI codebases (React/TS, i18next or similar, JSON locales), including installing/configuring the i18n framework, replacing hard-coded strings, ensuring en-US/zh-CN coverage, mapping error codes to localized messages, and validating key parity, pluralization, and formatting.
prompt-optimizer
daymade/claude-code-skills
Transforms vague prompts or feature requests into precise, testable specifications using EARS (Easy Approach to Requirements Syntax) grounded in relevant domain theories (GTD, BJ Fogg, Gestalt). Use when requirements lack triggers or measurable outcomes, or the user asks to "optimize my prompt" / "improve this requirement" / "make this more specific".
ppt-creator
daymade/claude-code-skills
Deprecated presentation entry retained as a compatibility notice. Use to check the retirement status of ppt-creator or identify a legacy installation. This package does not generate PPTX files.
qa-expert
daymade/claude-code-skills
Sets up QA testing processes: test strategies, Google Testing Standards test cases, P0-P4 bug tracking, quality metrics, progress reports, autonomous execution via master prompts, and OWASP security testing, with third-party QA handoff docs. Use when establishing QA infrastructure, writing test cases, executing test plans, or tracking bugs. Not for auditing an already-rendered UI (use frontend-visual-qa).
macos-cleaner
daymade/claude-code-skills
Diagnoses and safely reclaims macOS disk space: caches, logs, app remnants, large/duplicate files, Docker/OrbStack, Chromium code-sign clones, developer caches. Use when a Mac is low on storage, shows “Caching needs more space”, or before deleting anything to avoid data loss. Not for Windows/Linux or permission issues (use macos-permissions).
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.