[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CS0CA0E44PA9VFD1CFJ5H3":3,"skill-same:01M6CS0CA0E44PA9VFD1CFJ5H3":66},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":26,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":48,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":51,"ownerDescription":6,"updatedAt":52,"install":53,"resources":65},"01M6CS0CA0E44PA9VFD1CFJ5H3","fakechat-test",null,"Set up fakechat MCP plugin for interactive browser-based channel testing","kfet\u002Ffir","kfet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F14585?v=4","01M6CRZCB8P1V37WM3X0GB2DA6","Kalin Fetvadjiev","01M6CRZCFG1EW1WEN4RK84W1N5",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ffakechat-test\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38],"test","fakechat test","testing","MCP","plugin","browser","SET","interactive","channel","up","true","for","2026-11-10 10:12:30",false,"---\nname: fakechat-test\ndescription: Set up fakechat MCP plugin for interactive browser-based channel testing\noverride: true\n---\n\nSet up the official fakechat MCP plugin so you can chat with fir through the browser UI.\n\n# Build fir and install fakechat\n\n```bash\nmake\nif [ ! -d \u002Ftmp\u002Fclaude-plugins-official\u002Fexternal_plugins\u002Ffakechat ]; then\n  cd \u002Ftmp && git clone --depth 1 https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-plugins-official.git\nfi\ncd \u002Ftmp\u002Fclaude-plugins-official\u002Fexternal_plugins\u002Ffakechat && bun install\n```\n\n# Generate config and launch\n\n```bash\nMCP_CONFIG=$(mktemp \u002Ftmp\u002Ffir-fakechat-mcp-XXXXXX)\nDEBUG_LOG=$(mktemp \u002Ftmp\u002Ffir-fakechat-debug-XXXXXX)\nREPO=\"$PWD\"\ncat > \"$MCP_CONFIG\" \u003C\u003C EOF\n{\n  \"mcpServers\": {\n    \"fakechat\": {\n      \"command\": \"bun\",\n      \"args\": [\"run\", \"\u002Ftmp\u002Fclaude-plugins-official\u002Fexternal_plugins\u002Ffakechat\u002Fserver.ts\"]\n    }\n  }\n}\nEOF\nlsof -ti:8787 | xargs kill -9 2>\u002Fdev\u002Fnull; true\ntmux kill-session -t fakechat 2>\u002Fdev\u002Fnull; true\ntmux new-session -d -s fakechat -x 140 -y 40 \\\n  \"cd \u002Ftmp && FIR_DEBUG=1 $REPO\u002Fbin\u002Ffir --debug --debug-log-file $DEBUG_LOG --mcp-config $MCP_CONFIG 2>\u002Ftmp\u002Ffakechat-stderr.log\"\necho \"MCP config: $MCP_CONFIG\"\necho \"Debug log: $DEBUG_LOG\"\n```\n\n# Verify connection and open browser\n\n```bash\nsleep 4 && grep 'mcp connected.*fakechat' \"$DEBUG_LOG\"\nopen http:\u002F\u002Flocalhost:8787\n```\n\nShould show `\"tools\":2`. The browser UI is now open — type messages and the agent auto-responds.\n\n# Monitor continuously\n\n1. Check logs for channel activity\n```bash\ngrep -i 'channel\\|inject\\|reply\\|error\\|warn\\|fail' \"$DEBUG_LOG\" | tail -20\n```\n\n2. Check TUI state\n```bash\ntmux capture-pane -t fakechat -p -S -40\n```\n\n3. Report:\n- New channel messages received (with timestamps)\n- Tool calls made (reply, etc.)\n- Any errors or warnings\n- Whether auto-trigger fired (agent started a turn without manual prompt)\n\n4. Sleep for 10s, then go back to step 1\n\nKeep monitoring until the user explicitly asks to stop or clean up.\n\n# Cleanup after user says you're done\n\n```bash\ntmux kill-session -t fakechat 2>\u002Fdev\u002Fnull\nlsof -ti:8787 | xargs kill -9 2>\u002Fdev\u002Fnull; true\n```\n","Set up the official fakechat MCP plugin so you can chat with fir through the browser UI.\n\n# Build fir and install fakechat\n\n```bash\nmake\nif [ ! -d \u002Ftmp\u002Fclaude-plugins-official\u002Fexternal_plugins\u002Ffakechat ]; then\n  cd \u002Ftmp && git clone --depth 1 https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-plugins-official.git\nfi\ncd \u002Ftmp\u002Fclaude-plugins-official\u002Fexternal_plugins\u002Ffakechat && bun install\n```\n\n# Generate config and launch\n\n```bash\nMCP_CONFIG=$(mktemp \u002Ftmp\u002Ffir-fakechat-mcp-XXXXXX)\nDEBUG_LOG=$(mktemp \u002Ftmp\u002Ffir-fakechat-debug-XXXXXX)\nREPO=\"$PWD\"\ncat > \"$MCP_CONFIG\" \u003C\u003C EOF\n{\n  \"mcpServers\": {\n    \"fakechat\": {\n      \"command\": \"bun\",\n      \"args\": [\"run\", \"\u002Ftmp\u002Fclaude-plugins-official\u002Fexternal_plugins\u002Ffakechat\u002Fserver.ts\"]\n    }\n  }\n}\nEOF\nlsof -ti:8787 | xargs kill -9 2>\u002Fdev\u002Fnull; true\ntmux kill-session -t fakechat 2>\u002Fdev\u002Fnull; true\ntmux new-session -d -s fakechat -x 140 -y 40 \\\n  \"cd \u002Ftmp && FIR_DEBUG=1 $REPO\u002Fbin\u002Ffir --debug --debug-log-file $DEBUG_LOG --mcp-config $MCP_CONFIG 2>\u002Ftmp\u002Ffakechat-stderr.log\"\necho \"MCP config: $MCP_CONFIG\"\necho \"Debug log: $DEBUG_LOG\"\n```\n\n# Verify connection and open browser\n\n```bash\nsleep 4 && grep 'mcp connected.*fakechat' \"$DEBUG_LOG\"\nopen http:\u002F\u002Flocalhost:8787\n```\n\nShould show `\"tools\":2`. The browser UI is now open — type messages and the agent auto-responds.\n\n# Monitor continuously\n\n1. Check logs for channel activity\n```bash\ngrep -i 'channel\\|inject\\|reply\\|error\\|warn\\|fail' \"$DEBUG_LOG\" | tail -20\n```\n\n2. Check TUI state\n```bash\ntmux capture-pane -t fakechat -p -S -40\n```\n\n3. Report:\n- New channel messages received (with timestamps)\n- Tool calls made (reply, etc.)\n- Any errors or warnings\n- Whether auto-trigger fired (agent started a turn without manual prompt)\n\n4. Sleep for 10s, then go back to step 1\n\nKeep monitoring until the user explicitly asks to stop or clean up.\n\n# Cleanup after user says you're done\n\n```bash\ntmux kill-session -t fakechat 2>\u002Fdev\u002Fnull\nlsof -ti:8787 | xargs kill -9 2>\u002Fdev\u002Fnull; true\n```\n",{"name":5,"override":44,"description":7},true,"main","76b360b35f87ec18e1776cf6feafc7a025bdea64","pkg\u002Fresources\u002Fbuiltin_skills\u002Ffakechat-test",0,"https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir","https:\u002F\u002Fgithub.com\u002Fkfet","https:\u002F\u002Fgithub.com\u002Fkalin-sa","2026-11-13 02:17:59",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":44},[55,58,61],{"tool":56,"command":57},"npx","npx skills add kfet\u002Ffir --skill fakechat-test",{"tool":59,"command":60},"bunx","bunx skills add kfet\u002Ffir --skill fakechat-test",{"tool":62,"command":63},"pnpm","pnpm dlx skills add kfet\u002Ffir --skill fakechat-test","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ffakechat-test\u002FSKILL.md",[],[67,91,110,133,150,173],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":39},"01M6CS290490SZNX8V35TF3N6X","wt","Spawn a fresh fir agent in its own tmux session on its own git worktree. Use whenever the user wants the work — or the conversation about the work — to happen over there, not here. If the user points at this skill, or has directly loaded it in the context, that alone is the cue — spawn, don't inline.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fwt\u002FSKILL.md",[],[69,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,37,89,90],"tmux","git","worktree","git worktree","work","context","user","spawn","session","use","conversation","cue","fresh","it","about","at","inline",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":39},"01M6CS26KAKJ7VYRQ3RJ31SJ6S","wrap-up","Wrap up work on a project branch — review, fix, and simplify in a loop until clean, then ff-merge to main.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fwrap-up\u002FSKILL.md",[],[98,36,99,100,101,102,103,104,78,105,106,107,45,108,109,37],"wrap up","wrap","review","merge","simplify","loop","work on","branch","fix","clean","merge to main","project",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":114,"categories":115,"keywords":116,"publishedAt":39},"01M6CS23P85MSVBX11XMFB29PF","tmux-observer","Attach a tmux window to an already-running fir session — observe its transcript and drive its input via tmux send-keys. Use when you need to watch or steer another fir agent.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ftmux-observer\u002FSKILL.md",[],[74,117,118,119,82,83,120,121,122,123,124,125,126,37,127,128,129,130,131,132],"tmux observer","observer","transcript","drive","observe","attach","watch","input","via","you","keys","steer","window","send","when","running",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":39},"01M6CS21ENQ3D7Z08TDKXHJRR6","tmux-driver","Drive interactive CLIs (python, gdb, etc.) via named tmux sessions with multi-window support. Falls back to fir's built-in PTY driver when tmux is unavailable.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ftmux-driver\u002FSKILL.md",[],[74,140,141,142,143,144,34,145,120,146,147,125,148,149,37,129,131],"tmux driver","driver","python","support","sessions","PTY","back","gdb","multi","with",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":157,"publishedAt":39},"01M6CS1YWSAH2TQ7S4VK7VKJT6","telegram-bot-setup","Set up a new Telegram bot channel for a fir project — install the telegram MCP, create a per-project state dir, drop in the bot token, wire .fir\u002Fmcp.json with TELEGRAM_STATE_DIR, pair the user, and verify. Use when the user asks to add, configure, or onboard a Telegram bot for a fir worktree\u002Fproject.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ftelegram-bot-setup\u002FSKILL.md",[156],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[158,159,160,161,162,30,163,164,76,33,165,166,167,168,169,170,35,83,36,171,109,149,37,38,131,172],"bot","setup","telegram bot","telegram","telegram bot setup","create","state","verify","onboard","configure","json","pair","install","drop","new",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":177,"categories":178,"keywords":179,"publishedAt":39},"01M6CS1VSW4C1W1QED8NDHBHZ9","sync","Sync with an upstream source repo — detect changed files, apply equivalent downstream edits, update the baseline, and report any new features or non-trivial changes picked up.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fsync\u002FSKILL.md",[],[175,180,181,182,183,36,184,185,186,149,37,187,188,189,190,172],"update","report","baseline","repo","files","upstream","detect","source","changes","features","apply"]