用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/johnalbertini14-glitch/openclaw-skills --skill convex-backend命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | convex-backend |
| version | 1.0.1 |
| description | Store secrets, memory, and daily logs in your Convex backend instead of local files |
| author | LaunchThatBot |
| requires | {"mcp":"convex"} |
You are connected to a Convex backend via the Convex MCP server. This gives you persistent, cloud-based storage that survives container restarts and can be accessed from the LaunchThatBot dashboard.
This skill uses the stock Convex MCP server (convex@latest mcp start), not a custom LaunchThatBot MCP tool for data storage.
Recommended setup:
{
"mcpServers": {
"convex": {
"command": "npx",
"args": ["-y", "convex@latest", "mcp", "start"]
}
}
}
Reference: https://docs.convex.dev/ai/convex-mcp-server
If your runtime does not expose MCP tools natively (common in OpenClaw/Pi flows), use mcporter as the bridge.
Check prerequisites before running this skill workflow:
mcporter --version || npx -y mcporter --version
mcporter list || npx -y mcporter list
mcporter list convex --schema || npx -y mcporter list convex --schema
If mcporter is not runnable, tell the user they need npx mcporter (or a local install). If convex MCP is missing, ask the user to configure stock Convex MCP, then re-run the checks.
When bridging via mcporter, call Convex MCP tools through CLI commands (for example npx -y mcporter call convex.run ...) instead of assuming native MCP tool invocation in the runtime.
CONVEX_DEPLOY_KEY is the only key allowed in local .env. Keep it local because Convex MCP bootstrap depends on it.CONVEX_DEPLOY_KEY in Convex (envSet).envSet/envGet/envList/envRemove) and not local .env or auth.json.Before Convex MCP operations can work, CONVEX_DEPLOY_KEY must already exist in local runtime env (.env / deployment env vars).
If CONVEX_DEPLOY_KEY is missing:
CONVEX_DEPLOY_KEY locally and restart/reload MCPmcporter list convex --schema || npx -y mcporter list convex --schema
Do not attempt to save CONVEX_DEPLOY_KEY to Convex.
This skill package includes a Convex app under the convex/ folder and convex.json at package root.
The required backend logic is mounted as a local component:
convex_openclaw_backend_componentopenclawBackendAfter installing or updating this skill, run deploy from the skill root:
cd /home/node/.openclaw/skills/convex-backend
CONVEX_DEPLOY_KEY=... npx -y convex@latest deploy
Why:
npx convex deploy must run in the directory containing convex.json.memory:* calls will fail.If the user asks for new backend functionality (for example custom task tables, new mutations, or queries):
convex/components/openclawBackend/*).convex/*) so they stay separate from required integration tables.openclawBackend component.openclawBackend as core integration infrastructure, not a workspace for user-specific features.If you change Convex code but do not deploy, newly added functions/tables will not exist in the user's Convex deployment.
Use stock Convex MCP environment variable tools for secrets:
envSetenvGetenvListenvRemoveDo not use custom secrets:* functions for credentials in this skill.
For a logical secret key like OPENAI_API_KEY, resolve in this order:
AGENT_<agentId>_OPENAI_API_KEY (agent-specific override)AGENT_DEFAULT_OPENAI_API_KEY (shared default for all agents)OPENAI_API_KEY (legacy global fallback, optional)Examples:
AGENT_agent2_OPENAI_API_KEYAGENT_DEFAULT_OPENAI_API_KEYSet shared default:
Tool: envSet
Arguments: { "name": "AGENT_DEFAULT_OPENAI_API_KEY", "value": "sk-..." }
Set agent-specific override:
Tool: envSet
Arguments: { "name": "AGENT_<agentId>_OPENAI_API_KEY", "value": "sk-..." }
Read by fallback chain:
envGet("AGENT_<agentId>_OPENAI_API_KEY")envGet("AGENT_DEFAULT_OPENAI_API_KEY")envGet("OPENAI_API_KEY")Remove an agent override:
Tool: envRemove
Arguments: { "name": "AGENT_<agentId>_OPENAI_API_KEY" }
.env KeysIf this skill is installed on an existing agent that already has many keys in local .env, run this migration prompt after Convex MCP preflight succeeds:
Ask the user:
"Convex backend is configured. Do you want me to migrate all local
.envsecrets into Convex and remove them from local.env?
Recommended: Yes.
Local.envwill keep onlyCONVEX_DEPLOY_KEY."
If user confirms:
.env and collect secret key/value pairs.CONVEX_DEPLOY_KEY.AGENT_DEFAULT_<KEY>AGENT_<agentId>_<KEY>envList and targeted envGet..env.CONVEX_DEPLOY_KEY in local .env.Safety notes:
.env before mutation..env until retry succeeds.When you learn something important about the user, their preferences, or make a significant decision:
Function: memory:addMemory
Arguments: {
"agentId": "<your-agent-id>",
"type": "fact",
"content": "User prefers TypeScript over JavaScript for all new projects",
"tags": ["preferences", "coding"]
}
Memory types:
fact — Something true about the user or their setuppreference — User likes/dislikesdecision — A choice that was made and should be rememberednote — General observations or contextTo recall memories:
Function: memory:searchMemory
Arguments: { "agentId": "<your-agent-id>", "type": "preference", "limit": 20 }
At the end of each work session, write a summary of what was accomplished:
Function: memory:writeDailyLog
Arguments: {
"agentId": "<your-agent-id>",
"date": "2026-02-17",
"content": "## Summary\n- Set up email integration with Resend\n- Configured GitHub SSH keys\n- Started work on Twitter bot automation\n\n## Blockers\n- Need Twitter API key from user"
}
Daily logs are append-only — calling writeDailyLog for the same date appends to the existing entry.
To review past logs:
Function: memory:listDailyLogs
Arguments: { "agentId": "<your-agent-id>", "limit": 7 }
At the beginning of each session:
envList (and envGet for required keys)memory:searchMemory with limit 20memory:getDailyLog with today's dateThis ensures you have full context from previous sessions.
Your agent ID is provided in your agent configuration. Use it consistently in all Convex calls. If you're unsure of your agent ID, check your agent YAML config file.