[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-84139":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":16,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":9,"trendingCount":14,"starSnapshotCount":14,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},84139,"parrot-ops","SumrainChan\u002Fparrot-ops","SumrainChan","Demonstrate once, execute anywhere — secure remote skills for AI agents.",null,"Python",150,5,6,0,47,86,180,2.33,false,"main",true,[],"2026-06-12 02:04:38","# 🦜 Parrot Ops\n\n**演示一次，处处执行**\n\n为 AI Agent 提供安全、稳定的远程运维技能。人教一次，Agent 用万次。\n\n> *Demonstrate once, execute anywhere — secure, stable remote skills for AI Agents.*\n\n\n## 使用示例\n\n1. 在终端操作一次部署流程，Parrot 自动提炼为可复用的 Skill\n\n```bash\nparrot learn -t \"部署 user-api 服务\"\n[parrot] 开始录制... (输入 exit 结束)\n\nroot@host:~$ docker build -t user-api:latest .\nroot@host:~$ docker stop user-api && docker rm user-api\nroot@host:~$ docker run -d -p 8080:8080 --name user-api user-api:latest\nroot@host:~$ exit\n\n[parrot] 检测到 3 条命令，正在生成 Skill YAML...\n[parrot] 已保存: skills\u002Fdeploy-user-api.skill.yaml\nRegister to agent? Enter URL or blank to skip: http:\u002F\u002F127.0.0.1:9090\n[parrot] Registered 'deploy-user-api' to http:\u002F\u002F127.0.0.1:9090\n```\n\n2. 通过 Claude Code 下发部署任务，Parrot 安全、稳定地执行 Shell 操作，全程可追溯、可回滚\n\n```\nClaude Code: \"list skills\"\n → deploy-user-api, reload-nginx, health-check\n\nClaude Code: \"execute deploy-user-api, service_name=user-api\"\n → parrot-agent 本地执行: build → stop-old → start\n → 完成: build ✅, stop-old ✅, start ✅\n```\n\n\n## Quick Start\n\n```bash\n# 1. 目标机：安装并启动 agent\ngit clone https:\u002F\u002Fgithub.com\u002FSumrainChan\u002Fparrot-ops.git\ncd parrot-ops\npip install .\u002Fparrot-recorder .\u002Fparrot-agent\nparrot-agent --port 9090 &\n\n# 2. 目标机：录制操作\nparrot learn -t \"部署 user-api 服务\"\n# ... 敲你的运维命令 ... exit\n\n# 3. 本机：安装 mcp，配置 Claude Code\ncd parrot-ops\npip install .\u002Fparrot-mcp\n# 编辑 ~\u002F.claude\u002Fmcp.json:\n# { \"mcpServers\": { \"parrot\": {\n#     \"command\": \"parrot-mcp\",\n#     \"args\": [\"--agent\", \"http:\u002F\u002F\u003C目标机IP>:9090\"]\n# }}}\n```\n\n对 Claude Code 说：**\"list skills\"** — 就能看到刚录制的 Skill。\n\n## 它能做什么\n\n| 场景 | 之前 | 之后 |\n|---|---|---|\n| 部署服务 | 每次手动敲命令 | 一句 \"execute deploy-service\" |\n| 团队新人接手 | 翻 Wiki 或问老同事 | Agent 调用已有的 Skill |\n| 重复性运维 | 每次都靠记忆 | Skill YAML 固化，可审计可回滚 |\n| 生产环境操作 | 提心吊胆怕敲错 | 人类审核一次，Agent 执行 N 次 |\n\n## 架构\n\n\u003Cdetails>\n\u003Csummary>展开架构图\u003C\u002Fsummary>\n\n```\n目标机 (Linux)                        本机 (Win\u002FMac\u002FLinux)\n\n Record once                            Execute everywhere\n     │                                       │\n     ▼                                       ▼\nparrot-recorder     Skill YAML          parrot-mcp\n   (录制→生成)  ───────────────>  (MCP 标准接口)\n     │                                       │\n     ├─ parrot-agent (本地执行引擎)          │\n     │    :9090 HTTP API                     │\n     └───────────────────────────────────────┘\n                                              │\n                                         Claude Code\n                                       \"execute deploy-service\"\n```\n\n\u003C\u002Fdetails>\n\n## 安装\n\n| 模块 | 方式 | 依赖 |\n|---|---|---|\n| parrot-recorder | `pip install .\u002Fparrot-recorder` | Python ≥ 3.10, asciinema (自动安装) |\n| parrot-agent | `pip install .\u002Fparrot-agent` | Python ≥ 3.10, Linux |\n| parrot-mcp | `pip install .\u002Fparrot-mcp` | Python ≥ 3.10 |\n\n\n## 命令参考\n\n| 命令 | 在哪运行 | 说明 |\n|---|---|---|\n| `parrot learn` | 目标机 | 录制操作 → 生成 Skill YAML |\n| `parrot learn --skip-llm` | 目标机 | 录制 → 保存中间数据（离线） |\n| `parrot compose \u003Cfile> -t \"描述\"` | 任意 | 从中间数据生成 Skill YAML |\n| `parrot register \u003Cfile> --agent \u003Curl>` | 任意 | 注册 Skill 到 agent |\n| `parrot new` | 任意 | 交互式创建 Skill（不录制） |\n| `parrot validate \u003Cfile>` | 任意 | 校验 Skill YAML |\n| `parrot-agent --port 9090` | 目标机 | 启动执行引擎 |\n| `parrot-mcp --agent \u003Curl>` | 本机 | 启动 MCP 服务 |\n\n## 配置\n\n**parrot-recorder：** 项目根目录 `.env` 文件\n\n```bash\nPARROT_LLM_BACKEND=anthropic       # 或 openai\nPARROT_MODEL=claude-sonnet-4-6     # 模型选择\nANTHROPIC_API_KEY=sk-ant-xxx       # API key\n# 代理或本地模型：\n# ANTHROPIC_BASE_URL=https:\u002F\u002Fyour-proxy.com\n# OPENAI_BASE_URL=http:\u002F\u002Flocalhost:11434\u002Fv1\n```\n\n**parrot-agent：** 命令行参数\n\n```bash\nparrot-agent --port 9090 --bind 127.0.0.1\n# --port  监听端口 (默认 9090)\n# --bind  绑定地址 (默认 127.0.0.1，外部访问用 0.0.0.0)\n```\n\n**parrot-mcp：** 命令行参数，或 Claude Code `mcp.json`\n\n```bash\nparrot-mcp --agent http:\u002F\u002F\u003C目标机>:9090\n# --agent  parrot-agent 地址\n```\n\n## 文档\n\n- [录制模块](docs\u002Fparrot-recorder-spec.md)\n- [执行引擎](docs\u002Fparrot-agent-spec.md)\n- [MCP 接口](docs\u002Fparrot-mcp-spec.md)\n- [录制场景验证](docs\u002Frecording-scenarios.md)\n",2,"2026-06-11 04:12:22","CREATED_QUERY"]