weknora
Import documents and perform knowledge retrieval via WeKnora API. Use when uploading files, URLs, or Markdown to a knowledge base, searching knowledge with hybrid retrieval (vector + keyword), or querying knowledge details. Triggers: (1) uploading documents to a knowledge base, (2) hybrid search across knowledge bases, (3) listing/querying knowledge base contents.
- Installs
- 97
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://clawhub.ai --skill weknora- 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 weknora 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.
WeKnora
Knowledge base document import and retrieval through the WeKnora REST API.
Setup
- Get your API Key from the WeKnora web UI (account settings page)
- Configure environment variables:
export WEKNORA_BASE_URL="https://your-server.com/api/v1"
export WEKNORA_API_KEY="sk-your-api-key"
Add the above to
~/.zshrcor~/.bashrcto persist across sessions.
Credential Check
Verify credentials before any API call. Stop and prompt the user if unset.
if [ -z "$WEKNORA_BASE_URL" ] || [ -z "$WEKNORA_API_KEY" ]; then
echo "Missing WeKnora credentials. Set WEKNORA_BASE_URL and WEKNORA_API_KEY per Setup."
exit 1
fi
API Call Template
All requests go to $WEKNORA_BASE_URL with a shared header set. Define a helper:
wk_api() {
local method="$1" endpoint="$2" body="$3"
curl -s -X "$method" "$WEKNORA_BASE_URL/$endpoint" \
-H "X-API-Key: $WEKNORA_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Request-ID: $(uuidgen 2>/dev/null || date +%s)" \
${body:+-d "$body"}
}
For file uploads use curl -F directly (multipart/form-data).
API Decision Table
| User Intent | Endpoint | Key Params |
|---|---|---|
| List knowledge bases | GET /knowledge-bases | — |
| View KB details | GET /knowledge-bases/:id | — |
| Upload a file | POST /knowledge-bases/:id/knowledge/file | file (form-data), enable_multimodel |
| Import a web page | POST /knowledge-bases/:id/knowledge/url | url, enable_multimodel |
| Write Markdown content | POST /knowledge-bases/:id/knowledge/manual | title, content, tag_id |
| Check upload progress | GET /knowledge/:id | watch parse_status |
| Browse KB contents | GET /knowledge-bases/:id/knowledge | page, page_size, tag_id |
| Edit Markdown knowledge | PUT /knowledge/manual/:id | title, content |
| Delete a knowledge entry | DELETE /knowledge/:id | — |
| Search within a KB | GET /knowledge-bases/:id/hybrid-search | query_text, match_count, thresholds |
| Search across KBs | POST /knowledge-search | query, knowledge_base_ids |
Common Workflows
Upload File and Wait for Parsing
# 1. Find target KB
wk_api GET "knowledge-bases"
# -> pick kb_id from data[].id
# 2. Upload file
curl -s -X POST "$WEKNORA_BASE_URL/knowledge-bases/<kb_id>/knowledge/file" \
-H "X-API-Key: $WEKNORA_API_KEY" \
-F 'file=@document.pdf' -F 'enable_multimodel=true'
# -> get knowledge_id from data.id
# 3. Poll until parsed
wk_api GET "knowledge/<knowledge_id>"
# -> repeat until data.parse_status == "completed"
Import URL
wk_api POST "knowledge-bases/<kb_id>/knowledge/url" \
'{"url": "https://example.com/article", "enable_multimodel": true}'
# -> poll knowledge/:id same as file upload
Write Markdown Knowledge
wk_api POST "knowledge-bases/<kb_id>/knowledge/manual" \
'{"title": "Meeting Notes", "content": "# Q1 Review\n\nKey points..."}'
Search Knowledge
# Single-KB hybrid search (vector + keyword)
wk_api GET "knowledge-bases/<kb_id>/hybrid-search" \
'{"query_text": "deployment process", "match_count": 5}'
# Cross-KB semantic search
wk_api POST "knowledge-search" \
'{"query": "deployment process", "knowledge_base_ids": ["kb-1", "kb-2"]}'
Browse and Read KB Contents
# List knowledge entries (paginated)
wk_api GET "knowledge-bases/<kb_id>/knowledge?page=1&page_size=20"
# Get full detail of one entry
wk_api GET "knowledge/<knowledge_id>"
Core Response Fields
Knowledge Base (GET /knowledge-bases): data[] — id, name, description, type (document | faq), embedding_model_id, knowledge_count, chunk_count, is_processing, created_at.
Knowledge Entry (GET /knowledge/:id): data — id, title, description (auto-generated summary), type (file | url | manual), parse_status, enable_status, file_name, file_type, file_size, source (URL origin), created_at, processed_at, error_message.
Search Result (hybrid-search): data[] — id, content (chunk text), score (relevance 0–1), knowledge_id, knowledge_title, knowledge_filename, chunk_index, chunk_type (text | summary | image), match_type, metadata.
Paginated List (GET .../knowledge): data[] + total, page, page_size.
Enum Values
parse_status:pending→processing→completed|failedenable_status:enabled|disabled(knowledge becomesenabledafter successful parsing)type(knowledge):file(uploaded file),url(web import),manual(Markdown)type(knowledge base):document(standard),faq(FAQ pairs)chunk_type:text(regular chunk),summary(auto-generated summary),image(image chunk)
Pagination
- Offset pagination (
GET .../knowledge,GET /sessions): usepageandpage_sizequery params. Response includestotalfor calculating pages. - Hybrid search: returns up to
match_countresults (no pagination; increasematch_countfor more).
Notes
GET /knowledge-bases/:id/hybrid-searchuses GET method but requires a JSON request body — pass-d '{...}'with curl.- After uploading, knowledge
enable_statusstarts asdisabledand auto-switches toenabledonceparse_statusreachescompleted. - File upload uses
multipart/form-data, not JSON. Usecurl -F 'file=@path'. file_typeis auto-detected from the uploaded file (supportspdf,docx,xlsx,pptx,txt,md,csv,html, etc.).- Search
scoreranges from 0 to 1; higher is more relevant. Adjustvector_threshold(default ~0.5) to filter low-quality matches. - When
parse_statusisfailed, checkerror_messagefield for the failure reason before retrying withPOST /knowledge/:id/reparse.
Error Handling
All errors return:
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable description",
"details": "Optional extra info"
}
}
| HTTP Code | Meaning | Suggested Action |
|---|---|---|
400 | Bad request | Check required fields and param formats |
401 | Unauthorized | Verify WEKNORA_API_KEY is correct |
403 | Forbidden | Confirm you have access to this resource |
404 | Not found | Check resource ID exists |
413 | Payload too large | Reduce file size or split content |
500 | Server error | Retry after a short delay |
FAQ
What does the weknora skill do?
Import documents and perform knowledge retrieval via WeKnora API. Use when uploading files, URLs, or Markdown to a knowledge base, searching knowledge with hybrid retrieval (vector + keyword), or querying knowledge details. Triggers: (1) uploading documents to a knowledge base, (2) hybrid search across knowledge bases, (3) listing/querying knowledge base contents.
How do I install weknora?
Run npx skills add https://clawhub.ai --skill weknora 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/weknora/ (personal) or .claude/skills/weknora/ (project).
Which AI agents can use weknora?
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 weknora 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 weknora?
It is published by clawhub.ai in clawhub.ai. It has 97 recorded installs.
More from clawhub.ai
deep-skill-finder
clawhub.ai
最好的find skill的方式,能够基于你的任务,从实测效果和用户评价等真实使用反馈出发,寻找最匹配的高质量Skill,而不是只看下载量等热门数据。以下两种情况下都应使用本技能:① 当用户需要查找、搜索、推荐或安装 Skill,或者需要借助他人经验时——当用户说"找个 xxx 技能""股票分析别人怎么做的""找一找有没有现成的技能"等表达寻找意图,或直接表达想 find a skill / find skill / skill search的需求时;② Agent 自主判断需要外部 Skill 辅助——遇到不熟悉的任务,或对当前任务已经做过一些尝试仍无法解决、缺少合适工具时,可主动调用本技能查询实战经验并检索匹配的 Skill,无需等用户开口。
self-improving-agent
clawhub.ai
Captures and maintains learnings, errors, and corrections. Use when a command fails, the user corrects an assumption, a capability is missing, knowledge is outdated, or a better approach is found. Review relevant saved guidance before major tasks, reuse, and promotion; revalidate it according to what could change and how quickly.
humanizer
clawhub.ai
Remove signs of AI-generated writing from text. Use when editing or reviewing text to make it sound more natural and human-written. Based on Wikipedia's comprehensive "Signs of AI writing" guide. Detects and fixes patterns including: inflated symbolism, promotional language, superficial -ing analyses, vague attributions, em dash overuse, rule of three, AI vocabulary words, negative parallelisms, and excessive conjunctive phrases.
github
clawhub.ai
Interact with GitHub using the gh CLI. Use gh issue, gh pr, gh run, and gh api for issues, PRs, CI runs, and advanced queries.
summarize
clawhub.ai
Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).
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.