[{"data":1,"prerenderedAt":13430},["ShallowReactive",2],{"published-article-paths":3,"search-navigation":348,"category-articles-de-cloudflare":421},[4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96,98,100,102,104,106,108,110,112,114,116,118,120,122,124,126,128,130,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180,182,184,186,188,190,192,194,196,198,200,202,204,206,208,210,212,214,216,218,220,222,224,226,228,230,232,234,236,238,240,242,244,246,248,250,252,254,256,258,260,262,264,266,268,270,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,312,314,316,318,320,322,324,326,328,330,332,334,336,338,340,342,344,346],{"path":5},"\u002Fde\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":7},"\u002Fde\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":9},"\u002Fde\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":11},"\u002Fde\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":13},"\u002Fde\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":15},"\u002Fde\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":17},"\u002Fde\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":19},"\u002Fde\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":21},"\u002Fde\u002Farticle\u002Fsetup-antigravity-2",{"path":23},"\u002Fde\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":25},"\u002Fde\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":27},"\u002Fde\u002Farticle\u002Fsync-obsidian-across-devices",{"path":29},"\u002Fde\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":31},"\u002Fde\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":33},"\u002Fde\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":35},"\u002Fde\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":37},"\u002Fen\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":39},"\u002Fen\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":41},"\u002Fen\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":43},"\u002Fen\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":45},"\u002Fen\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":47},"\u002Fen\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":49},"\u002Fen\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":51},"\u002Fen\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":53},"\u002Fen\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":55},"\u002Fen\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":57},"\u002Fen\u002Farticle\u002Fsetup-antigravity-2",{"path":59},"\u002Fen\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":61},"\u002Fen\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":63},"\u002Fen\u002Farticle\u002Fsync-obsidian-across-devices",{"path":65},"\u002Fen\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":67},"\u002Fen\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":69},"\u002Fen\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":71},"\u002Fen\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":73},"\u002Fes\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":75},"\u002Fes\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":77},"\u002Fes\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":79},"\u002Fes\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":81},"\u002Fes\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":83},"\u002Fes\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":85},"\u002Fes\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":87},"\u002Fes\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":89},"\u002Fes\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":91},"\u002Fes\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":93},"\u002Fes\u002Farticle\u002Fsetup-antigravity-2",{"path":95},"\u002Fes\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":97},"\u002Fes\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":99},"\u002Fes\u002Farticle\u002Fsync-obsidian-across-devices",{"path":101},"\u002Fes\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":103},"\u002Fes\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":105},"\u002Fes\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":107},"\u002Fes\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":109},"\u002Ffr\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":111},"\u002Ffr\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":113},"\u002Ffr\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":115},"\u002Ffr\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":117},"\u002Ffr\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":119},"\u002Ffr\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":121},"\u002Ffr\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":123},"\u002Ffr\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":125},"\u002Ffr\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":127},"\u002Ffr\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":129},"\u002Ffr\u002Farticle\u002Fsetup-antigravity-2",{"path":131},"\u002Ffr\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":133},"\u002Ffr\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":135},"\u002Ffr\u002Farticle\u002Fsync-obsidian-across-devices",{"path":137},"\u002Ffr\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":139},"\u002Ffr\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":141},"\u002Ffr\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":143},"\u002Ffr\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":145},"\u002Fid\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":147},"\u002Fid\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":149},"\u002Fid\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":151},"\u002Fid\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":153},"\u002Fid\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":155},"\u002Fid\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":157},"\u002Fid\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":159},"\u002Fid\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":161},"\u002Fid\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":163},"\u002Fid\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":165},"\u002Fid\u002Farticle\u002Fsetup-antigravity-2",{"path":167},"\u002Fid\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":169},"\u002Fid\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":171},"\u002Fid\u002Farticle\u002Fsync-obsidian-across-devices",{"path":173},"\u002Fid\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":175},"\u002Fid\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":177},"\u002Fid\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":179},"\u002Fid\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":181},"\u002Fja\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":183},"\u002Fja\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":185},"\u002Fja\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":187},"\u002Fja\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":189},"\u002Fja\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":191},"\u002Fja\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":193},"\u002Fja\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":195},"\u002Fja\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":197},"\u002Fja\u002Farticle\u002Fsetup-antigravity-2",{"path":199},"\u002Fja\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":201},"\u002Fja\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":203},"\u002Fja\u002Farticle\u002Fsync-obsidian-across-devices",{"path":205},"\u002Fja\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":207},"\u002Fja\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":209},"\u002Fja\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":211},"\u002Fja\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":213},"\u002Fpt\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":215},"\u002Fpt\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":217},"\u002Fpt\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":219},"\u002Fpt\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":221},"\u002Fpt\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":223},"\u002Fpt\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":225},"\u002Fpt\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":227},"\u002Fpt\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":229},"\u002Fpt\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":231},"\u002Fpt\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":233},"\u002Fpt\u002Farticle\u002Fsetup-antigravity-2",{"path":235},"\u002Fpt\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":237},"\u002Fpt\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":239},"\u002Fpt\u002Farticle\u002Fsync-obsidian-across-devices",{"path":241},"\u002Fpt\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":243},"\u002Fpt\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":245},"\u002Fpt\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":247},"\u002Fpt\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":249},"\u002Ftw\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":251},"\u002Ftw\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":253},"\u002Ftw\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":255},"\u002Ftw\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":257},"\u002Ftw\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":259},"\u002Ftw\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":261},"\u002Ftw\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":263},"\u002Ftw\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":265},"\u002Ftw\u002Farticle\u002Fsetup-antigravity-2",{"path":267},"\u002Ftw\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":269},"\u002Ftw\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":271},"\u002Ftw\u002Farticle\u002Fsync-obsidian-across-devices",{"path":273},"\u002Ftw\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":275},"\u002Ftw\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":277},"\u002Ftw\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":279},"\u002Ftw\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":281},"\u002Fvi\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":283},"\u002Fvi\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":285},"\u002Fvi\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":287},"\u002Fvi\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":289},"\u002Fvi\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":291},"\u002Fvi\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"path":293},"\u002Fvi\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":295},"\u002Fvi\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":297},"\u002Fvi\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":299},"\u002Fvi\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"path":301},"\u002Fvi\u002Farticle\u002Fsetup-antigravity-2",{"path":303},"\u002Fvi\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":305},"\u002Fvi\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":307},"\u002Fvi\u002Farticle\u002Fsync-obsidian-across-devices",{"path":309},"\u002Fvi\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":311},"\u002Fvi\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":313},"\u002Fvi\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":315},"\u002Fvi\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",{"path":317},"\u002Fzh\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"path":319},"\u002Fzh\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"path":321},"\u002Fzh\u002Farticle\u002Fcentralised-the-skills-for-agents",{"path":323},"\u002Fzh\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"path":325},"\u002Fzh\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"path":327},"\u002Fzh\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"path":329},"\u002Fzh\u002Farticle\u002Fself-hosted-travel-planner-trek",{"path":331},"\u002Fzh\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"path":333},"\u002Fzh\u002Farticle\u002Fsetup-antigravity-2",{"path":335},"\u002Fzh\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"path":337},"\u002Fzh\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"path":339},"\u002Fzh\u002Farticle\u002Fsync-obsidian-across-devices",{"path":341},"\u002Fzh\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"path":343},"\u002Fzh\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"path":345},"\u002Fzh\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"path":347},"\u002Fzh\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",[349,353,357,361,365,369,373,377,381,385,389,393,397,401,405,409,413,417],{"title":350,"path":351,"stem":352},"AI Agent Skills: What They Are & How to Create Them","\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them","en\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",{"title":354,"path":355,"stem":356},"Bringing Buzz to DeepSeek Harness: Taught to Speak Nostr","\u002Farticle\u002Fbringing-buzz-to-deepseek-harness","en\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",{"title":358,"path":359,"stem":360},"Solving AI Agent Skills Fragmentation with npx skills","\u002Farticle\u002Fcentralised-the-skills-for-agents","en\u002Farticle\u002Fcentralised-the-skills-for-agents",{"title":362,"path":363,"stem":364},"How to Expose Hermes Agent Privately with Cloudflare WARP","\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp","en\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",{"title":366,"path":367,"stem":368},"How AI Agent Skills Replace Nuxt App Scaffolding Scripts","\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts","en\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",{"title":370,"path":371,"stem":372},"Stop Exposing Your Vault: Secure NodeWarden with Cloudflare","\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare","en\u002Farticle\u002Fhow-to-secure-nodewarden-at-cloudflare",{"title":374,"path":375,"stem":376},"How to Deploy Hermes Agent on a Linux VPS","\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server","en\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",{"title":378,"path":379,"stem":380},"Self-Host Your Travel Itineraries with TREK and Docker","\u002Farticle\u002Fself-hosted-travel-planner-trek","en\u002Farticle\u002Fself-hosted-travel-planner-trek",{"title":382,"path":383,"stem":384},"Self-Host Block's Buzz: Shared AI Agent Workspace","\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues","en\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",{"title":386,"path":387,"stem":388},"How to Self-Host a BitWarden Compatible Server Nodewarden","\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare","en\u002Farticle\u002Fself-hosting-nodewarden-at-cloudflare",{"title":390,"path":391,"stem":392},"Google Antigravity 2 Hands-On: Setup & First Impressions","\u002Farticle\u002Fsetup-antigravity-2","en\u002Farticle\u002Fsetup-antigravity-2",{"title":394,"path":395,"stem":396},"NetSuite AI Connector Guide: MCP Setup & Use Cases","\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude","en\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",{"title":398,"path":399,"stem":400},"Switch Between Multiple Cloudflare WARP Orgs on Mac","\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac","en\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",{"title":402,"path":403,"stem":404},"How to Sync Obsidian Vaults Across Devices Securely","\u002Farticle\u002Fsync-obsidian-across-devices","en\u002Farticle\u002Fsync-obsidian-across-devices",{"title":406,"path":407,"stem":408},"Testing Claude Fable 5: A Financial Analysis Review","\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis","en\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",{"title":410,"path":411,"stem":412},"Guide to Browser and Scheduler in Antigravity 2","\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2","en\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",{"title":414,"path":415,"stem":416},"Build a Persistent AI Memory System on Cloudflare","\u002Farticle\u002Fuse-cloudflare-as-ai-memory","en\u002Farticle\u002Fuse-cloudflare-as-ai-memory",{"title":418,"path":419,"stem":420},"Antigravity 2 in Action: AI Agents, Skills, and MCP","\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2","en\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",[422,1708,2655,4110,6273,8160,8733,9512,10044,10445,11072,11529,11741,11965,12304,12998],{"id":423,"title":424,"author":425,"body":426,"category":1662,"date":1666,"description":1667,"extension":1668,"image":1669,"imageAlt":1670,"isPublished":1067,"meta":1671,"minRead":1699,"navigation":1067,"path":7,"seo":1700,"stem":1702,"tags":1703,"updatedAt":1706,"__hash__":1707},"article\u002Fde\u002Farticle\u002Fbringing-buzz-to-deepseek-harness.md","DeepSeek Harness mit Buzz verbinden: Das Nostr-Gateway","",{"type":427,"value":428,"toc":1646},"minimark",[429,437,462,470,473,478,484,529,532,593,597,603,873,876,880,885,892,896,910,914,925,978,985,989,992,1024,1028,1033,1084,1092,1098,1107,1113,1144,1157,1161,1169,1200,1222,1270,1277,1282,1288,1295,1301,1306,1314,1328,1334,1344,1384,1387,1393,1400,1406,1410,1413,1564,1568,1602,1606,1612,1616,1642],[430,431,432],"p",{},[433,434],"img",{"alt":435,"src":436},"Übersicht über das mit einem Block Buzz-Kanal verbundene DeepSeek Harness Nachrichten-Gateway","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-nostr-gateway-overview.webp",[430,438,439,440,450,451,456,457,461],{},"Das DeepSeek Harness (DSH) Plugin, ",[441,442,443],"strong",{},[444,445,449],"a",{"href":446,"rel":447},"https:\u002F\u002Fgithub.com\u002Fa792883583\u002Fdsh-message-gateway",[448],"nofollow","dsh-message-gateway",", erweitert den DeepSeek Harness Assistenten auf verschiedene Messaging-Plattformen wie Discord, Telegram und WeChat. Das Plugin-Repository wurde geforkt und erweitert, um die Plattform ",[441,452,453],{},[444,454,455],{"href":383},"Block's Buzz selbst hosten: Workspace für Mensch & KI-Agenten"," zur Liste hinzuzufügen. Das geforkte Repository ist auf GitHub unter ",[444,458,459],{"href":459,"rel":460},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fdsh-message-gateway",[448]," verfügbar.",[463,464],"article-card",{"description":465,"image":466,"image-alt":467,"label":468,"min-read":469,"title":455,"to":383},"Lernen Sie, wie Sie das Nostr-Relay Block's Buzz auf einem Ubuntu VPS hinter Cloudflare selbst hosten. Ein sicherer Workspace für Menschen und KI-Agenten.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002FDE-Self-Hosting-Buzz-As-The-Workspace-Where-AI-Agents-Become-Colleagues.webp","Eine Premium-Technologiekarte im Format 16:9 mit tiefblauen und orangefarbenen Akzenten, die zeigt, wie man das Buzz-Relay von Block auf einem Ubuntu-VPS selbst hostet, mit einem klaren glassmorphic Panel mit zentrierter Typografie.","Voraussetzungsleitfaden","12",[430,471,472],{},"Der DSH-Assistent tritt einem Buzz-Relay als vollwertiges Mitglied bei, empfängt Direktnachrichten (DMs) sowie Kanalnachrichten, in denen er @erwähnt wird, und antwortet über dieselbe kanalbezogene Agenten-Pipeline, die auch von der Weboberfläche genutzt wird.",[474,475,477],"h2",{"id":476},"architektur-des-dsh-message-gateway-plugins","Architektur des dsh-message-gateway Plugins",[430,479,480,481,483],{},"Die Architektur des ",[441,482,449],{}," Plugins gliedert sich in zwei Kernbereiche:",[485,486,487,519],"ul",{},[488,489,490,493,494,498,499,502,503,506,507,510,511,514,515,518],"li",{},[441,491,492],{},"Host"," (Node): ",[495,496,497],"code",{},"gateway-store"," (Zugangsdaten in ",[495,500,501],{},"~\u002F.dsh\u002Fgateway.json","), ",[495,504,505],{},"platforms.ts"," (Plattformdefinitionen und Verbindungstests), ",[495,508,509],{},"routes.ts"," (",[495,512,513],{},"\u002Fgateway\u002F*"," Endpunkte) und ",[495,516,517],{},"bridge-manager.ts"," (die residenten Bridges: unabhängige Agentensitzungen pro Chat und gestreamte Antworten).",[488,520,521,524,525,528],{},[441,522,523],{},"Client"," (Browser): Die Seite \"",[441,526,527],{},"Message platforms","\" in der Seitenleiste, auf der Sie Zugangsdaten hinterlegen, Verbindungen testen und den Status überwachen.",[430,530,531],{},"Die Anbindung einer neuen Plattform umfasst folgende Schritte:",[533,534,535,553,567],"ol",{},[488,536,537,540,541,544,545,548,549,552],{},[441,538,539],{},"Eine Bridge-Klasse",": Stellt ",[495,542,543],{},"start\u002Fstop\u002Fstatus"," sowie einen ",[495,546,547],{},"onText(text, frame)"," Callback bereit, analog zu ",[495,550,551],{},"wecom-bridge.ts",".",[488,554,555,558,559,562,563,566],{},[441,556,557],{},"Bridge-Manager-Verdrahtung",": Wiederverwendung der bestehenden Chat-Pipeline (",[495,560,561],{},"ensureAgentForKey"," + ",[495,564,565],{},"pendingMap",") unter Einbindung der Antwort-Senke der Plattform.",[488,568,569,572,573,576,577,580,581,584,585,588,589,592],{},[441,570,571],{},"Speicher- und Routen-Anbindung",": In ",[495,574,575],{},"\u002Fgateway\u002Fsave"," und ",[495,578,579],{},"\u002Fgateway\u002Fdelete",": ",[441,582,583],{},"Das Speichern von Zugangsdaten startet die Bridge, das Löschen stoppt sie"," — ergänzt durch ein ",[495,586,587],{},"autoStartXxx","-Flag, damit ",[495,590,591],{},"dsh web"," beim Systemstart automatisch neu verbindet.",[474,594,596],{"id":595},"buzz-bridge-implementierung-nostr-protokoll-event-lebenszyklus","Buzz-Bridge-Implementierung: Nostr-Protokoll & Event-Lebenszyklus",[430,598,599,602],{},[441,600,601],{},"DeepSeek Harness"," wurde direkt verwendet, um die Buzz-Bridge zu implementieren. Die Umsetzung erfüllt die folgenden Nostr-Protokollspezifikationen:",[604,605,606,633],"table",{},[607,608,609],"thead",{},[610,611,612,618],"tr",{},[613,614,615],"th",{},[441,616,617],{},"Transport",[613,619,620,621,624,625,628,629,632],{},"Ein NIP-42-authentifizierter WebSocket; Standard ",[495,622,623],{},"ws:\u002F\u002Flocalhost:3000","; ",[495,626,627],{},"http(s):\u002F\u002F"," wird zu ",[495,630,631],{},"ws(s):\u002F\u002F"," normalisiert",[634,635,636,655,682,700,724,748,773,786,800,819,836,850],"tbody",{},[610,637,638,644],{},[639,640,641],"td",{},[441,642,643],{},"Authentifizierung",[639,645,646,647,650,651,654],{},"AUTH-Event ",[495,648,649],{},"kind 22242",", Tags ",[495,652,653],{},"[[\"relay\", url], [\"challenge\", challenge]]",", leerer Inhalt, signiert mit dem Agenten-Schlüssel",[610,656,657,662],{},[639,658,659],{},[441,660,661],{},"Abonnements",[639,663,664,580,667,670,671,674,675,678,679],{},[441,665,666],{},"Kanalbezogen",[495,668,669],{},"REQ {\"kinds\":[9], \"#h\":[\u003Cuuid>]}"," — ein REQ pro Kanal. Ein globales ",[495,672,673],{},"kinds:[9]"," REQ erhält EOSE, liefert aber keine Events aus; Multi-Wert ",[495,676,677],{},"#h"," funktioniert ",[441,680,681],{},"nicht",[610,683,684,689],{},[639,685,686],{},[441,687,688],{},"Erkennung (Discovery)",[639,690,691,692,695,696,699],{},"Historisches ",[495,693,694],{},"REQ {kinds:[39000]}"," für Kanal-Metadaten (",[495,697,698],{},"type == \"dm\""," markiert Direktnachrichtenkanäle)",[610,701,702,707],{},[639,703,704],{},[441,705,706],{},"Mitgliedschaft",[639,708,709,710,713,714,716,717,720,721],{},"Live ",[495,711,712],{},"REQ {kinds:[44100,44101], \"#p\":[unser pubkey], since: now-60s}"," — 44100 = hinzugefügt, 44101 = entfernt, mit ",[495,715,430],{},"+",[495,718,719],{},"h","; aktualisiert Abonnements ",[441,722,723],{},"ohne Reconnect",[610,725,726,731],{},[639,727,728],{},[441,729,730],{},"Chat-Events",[639,732,733,736,737,740,741,744,745],{},[495,734,735],{},"kind 9"," mit Tags ",[495,738,739],{},"[\"h\", channel]",", optional ",[495,742,743],{},"[\"e\", replyTo]",", ",[495,746,747],{},"[\"p\", mention]",[610,749,750,755],{},[639,751,752],{},[441,753,754],{},"In-Place-Edits",[639,756,757,760,761,562,763,766,767,769,770,772],{},[495,758,759],{},"kind 40003"," mit ",[495,762,719],{},[495,764,765],{},"e","→Ziel; ersetzt Inhalt; Relay-Limit 64 KB → Nutzlasten ≤ 60.000 B halten; lange Antworten werden aufgeteilt — Chunk 0 nutzt das Edit, Überhang folgt als ",[495,768,735],{}," Thread-Nachricht (",[495,771,765],{},"→Root)",[610,774,775,780],{},[639,776,777],{},[441,778,779],{},"CLOSED-Frames",[639,781,782,785],{},[495,783,784],{},"auth-required"," vor AUTH ist normaler Bootstrap (AUTH abschließen, Subs neu öffnen); nach AUTH → begrenzter Neuversuch (3 Versuche, 0\u002F1\u002F2 s Backoff); Reconnect baut alles neu auf",[610,787,788,793],{},[639,789,790],{},[441,791,792],{},"Relay-Limits",[639,794,795,796,799],{},"≤ 2000 historische Events pro Abonnement, chronologisch absteigend (neueste zuerst), selbst mit ",[495,797,798],{},"since","-Filter",[610,801,802,807],{},[639,803,804],{},[441,805,806],{},"Erwähnungs-Filter",[639,808,809,810,812,813,815,816,818],{},"Verarbeitet eingehende ",[495,811,735],{}," nur wenn: (a) ",[495,814,430],{},"-Tag unseren Pubkey enthält, (b) Kanal ein DM ist, oder (c) ",[495,817,765],{},"-Root unser eigenes Event ist. Eigener Pubkey wird ignoriert (Schleifenschutz)",[610,820,821,826],{},[639,822,823],{},[441,824,825],{},"Ausgehende Erwähnungen",[639,827,828,829,832,833,835],{},"Ausgehender Text wird unverändert veröffentlicht — das Relay prüft keine ",[495,830,831],{},"@","-Token; ",[495,834,430],{},"-Tags enthalten den ursprünglichen Autor + bis zu 7 weitere erwähnte Pubkeys (max. 8)",[610,837,838,843],{},[639,839,840],{},[441,841,842],{},"Direktnachrichten (DM)",[639,844,845,846,849],{},"Relay-spezifische Klartext-Kanäle (",[495,847,848],{},"type: \"dm\""," Metadaten) — keine NIP-04\u002F44-Verschlüsselung in dieser Bridge",[610,851,852,857],{},[639,853,854],{},[441,855,856],{},"Anhänge (Eingehend)",[639,858,859,860,510,863,744,866,744,869,872],{},"NIP-92 ",[495,861,862],{},"imeta",[495,864,865],{},"url",[495,867,868],{},"sha256",[495,870,871],{},"m",") → Standard-HTTP(S)-Download, SHA-256-Prüfung, 20 MB Limit, max. 4 pro Nachricht; ausgehende Bilder werden nicht unterstützt",[430,874,875],{},"Das folgende Diagramm veranschaulicht den Bootstrap-Ablauf der Buzz-Bridge:",[433,877],{"src":878,"alt":879},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-bootstrap.webp","Sequenzdiagramm zur Veranschaulichung des Bootstrap- und NIP-42-Authentifizierungsprozesses der Buzz-Bridge",[881,882,884],"h3",{"id":883},"echtzeit-streaming-über-nostr-in-place-edits-kind-40003","Echtzeit-Streaming über Nostr In-Place-Edits (Kind 40003)",[430,886,887,888,891],{},"Da Nostr keine native Tippanzeige besitzt und Events append-only gespeichert werden, ",[441,889,890],{},"simuliert die Buzz-Bridge Streaming über In-Place-Edits",":",[433,893],{"src":894,"alt":895},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-reply.webp","Ablaufdiagramm der In-Place-Bearbeitung zur Simulation gestreamter Antworten mittels Kind-40003-Events",[485,897,898],{},[488,899,900],{},[901,902,903,904,906,907,909],"em",{},"Die Buzz-Bridge veröffentlicht zunächst ein temporäres Platzhalter-Event ",[495,905,735],{},", schreibt dieses kontinuierlich mit ratenlimitierten ",[495,908,759],{}," In-Place-Edits fort und setzt den finalen Edit, sobald der Agent die Generierung beendet hat. Dies entspricht dem bewährten Muster von Telegram- und Discord-Bridges.",[881,911,913],{"id":912},"einbindung-von-deepseek-harness-workspaces-über-chat-befehle","Einbindung von DeepSeek Harness Workspaces über Chat-Befehle",[430,915,916,917,920,921,924],{},"Die \"Workspaces\"-Funktion in der DSH-Weboberfläche basiert auf dem ",[495,918,919],{},"workspaceRegistry","-Dienst (",[495,922,923],{},"@deepseek-ai\u002Fdsh-workspace","):",[926,927,931],"pre",{"className":928,"code":929,"language":930,"meta":425,"style":425},"language-typescript shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const existing = await ctx.workspaceRegistry.resolveByPath(request.path);\n","typescript",[495,932,933],{"__ignoreMap":425},[934,935,938,942,946,950,954,957,959,961,963,967,970,972,975],"span",{"class":936,"line":937},"line",1,[934,939,941],{"class":940},"spNyl","const",[934,943,945],{"class":944},"sTEyZ"," existing ",[934,947,949],{"class":948},"sMK4o","=",[934,951,953],{"class":952},"s7zQu"," await",[934,955,956],{"class":944}," ctx",[934,958,552],{"class":948},[934,960,919],{"class":944},[934,962,552],{"class":948},[934,964,966],{"class":965},"s2Zo4","resolveByPath",[934,968,969],{"class":944},"(request",[934,971,552],{"class":948},[934,973,974],{"class":944},"path)",[934,976,977],{"class":948},";\n",[430,979,980,981,984],{},"Die Buzz-Bridge stellt den Chat-Befehl ",[495,982,983],{},"\u002Fworkspace \u003Cordner>"," bereit, der ein bestehendes Verzeichnis in DSH registriert. Jede neue über das Gateway initiierte Sitzung wird diesem Ordner zugeordnet und erscheint in der Weboberfläche.",[433,986],{"src":987,"alt":988},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-workspace.webp","Architektur der Registrierung von DeepSeek Harness-Workspaces über Chat-Befehle",[430,990,991],{},"Drei zentrale Entwurfsentscheidungen:",[485,993,994,1004,1014],{},[488,995,996,999,1000,1003],{},[441,997,998],{},"Ordnerwechsel = Neue Sitzung."," Der Parameter ",[495,1001,1002],{},"cwd"," wird bei der Initialisierung im Sitzungs-Header hinterlegt und kann nachträglich nicht geändert werden.",[488,1005,1006,1009,1010,1013],{},[441,1007,1008],{},"Ordner muss bereits existieren."," Der Aufruf ",[495,1011,1012],{},"create"," weist nicht vorhandene Pfade ab.",[488,1015,1016,1019,1020,1023],{},[441,1017,1018],{},"Sicherheitsrelevanter Befehl."," Jede Sitzung läuft unter einer ",[441,1021,1022],{},"Auto-Approve","-Richtlinie und gewährt Dateizugriff auf das Zielverzeichnis.",[474,1025,1027],{"id":1026},"schritt-für-schritt-installations-und-konfigurationsanleitung","Schritt-für-Schritt Installations- und Konfigurationsanleitung",[533,1029,1030],{},[488,1031,1032],{},"Führen Sie folgende Befehle im Terminal aus:",[926,1034,1038],{"className":1035,"code":1036,"language":1037,"meta":425,"style":425},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dsh plugin --profile web add https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fdsh-message-gateway.git\n\n# Start DSH web\ndsh web\n","bash",[495,1039,1040,1062,1069,1076],{"__ignoreMap":425},[934,1041,1042,1046,1050,1053,1056,1059],{"class":936,"line":937},[934,1043,1045],{"class":1044},"sBMFI","dsh",[934,1047,1049],{"class":1048},"sfazB"," plugin",[934,1051,1052],{"class":1048}," --profile",[934,1054,1055],{"class":1048}," web",[934,1057,1058],{"class":1048}," add",[934,1060,1061],{"class":1048}," https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fdsh-message-gateway.git\n",[934,1063,1065],{"class":936,"line":1064},2,[934,1066,1068],{"emptyLinePlaceholder":1067},true,"\n",[934,1070,1072],{"class":936,"line":1071},3,[934,1073,1075],{"class":1074},"sHwdD","# Start DSH web\n",[934,1077,1079,1081],{"class":936,"line":1078},4,[934,1080,1045],{"class":1044},[934,1082,1083],{"class":1048}," web\n",[533,1085,1086],{"start":1064},[488,1087,1088,1089,1091],{},"Sobald die DSH-Weboberfläche im Browser geladen ist, klicken Sie auf das Symbol \"",[441,1090,527],{},"\":",[430,1093,1094],{},[433,1095],{"alt":1096,"src":1097},"Seitenleiste der DeepSeek Harness-Weboberfläche mit hervorgehobenem Message platforms-Menü","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-web-ui-message-platforms-sidebar-icon.webp",[533,1099,1100],{"start":1071},[488,1101,1102,1103,1106],{},"Wählen Sie \"",[441,1104,1105],{},"Buzz","\" im linken Navigationsbereich:",[430,1108,1109],{},[433,1110],{"alt":1111,"src":1112},"Konfigurationsbereich der Buzz-Bridge im DeepSeek Harness Nachrichten-Gateway","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-message-gateway-buzz-config-panel.webp",[533,1114,1115,1126,1137],{"start":1078},[488,1116,1117,1118,1121,1122,1125],{},"Klicken Sie auf \"",[441,1119,1120],{},"Generate keypair","\", um ein Nostr-Schlüsselpaar zu generieren. Kopieren Sie den öffentlichen Schlüssel ",[495,1123,1124],{},"npub"," an einen sicheren Ort.",[488,1127,1128,1129,1132,1133,1136],{},"Tragen Sie die ",[441,1130,1131],{},"Relay URL"," sowie die ",[441,1134,1135],{},"Channels"," (die Allowlist der zu abonnierenden Kanal-UUIDs) ein.",[488,1138,1139,1140,1143],{},"Klicken Sie auf die Schaltfläche \"",[441,1141,1142],{},"Save","\".",[430,1145,1146,1147,1150,1151,1154,1155,552],{},"Das Speichern des Formulars sichert die Zugangsdaten und ",[441,1148,1149],{},"startet die Bridge",". Der private Schlüssel ",[495,1152,1153],{},"nsec"," wird als vertrauliches Geheimnis behandelt und verbleibt ausschließlich in ",[495,1156,501],{},[881,1158,1160],{"id":1159},"agenten-schlüsselpaar-im-buzz-nostr-relay-registrieren","Agenten-Schlüsselpaar im Buzz Nostr-Relay registrieren",[430,1162,1163,1166,1167,891],{},[441,1164,1165],{},"Fügen Sie den DSH-Assistenten dem Relay als Mitglied hinzu."," Verwenden Sie dazu den zuvor generierten ",[495,1168,1124],{},[926,1170,1172],{"className":1035,"code":1171,"language":1037,"meta":425,"style":425},"docker compose exec relay buzz-admin add-member --pubkey npub123123123\n",[495,1173,1174],{"__ignoreMap":425},[934,1175,1176,1179,1182,1185,1188,1191,1194,1197],{"class":936,"line":937},[934,1177,1178],{"class":1044},"docker",[934,1180,1181],{"class":1048}," compose",[934,1183,1184],{"class":1048}," exec",[934,1186,1187],{"class":1048}," relay",[934,1189,1190],{"class":1048}," buzz-admin",[934,1192,1193],{"class":1048}," add-member",[934,1195,1196],{"class":1048}," --pubkey",[934,1198,1199],{"class":1048}," npub123123123\n",[430,1201,1202,1205,1206,1209,1210,1213,1214,1217,1218,1221],{},[441,1203,1204],{},"Weisen Sie den Assistenten einem bestimmten Kanal zu."," Die Mitgliedschaft im Relay allein macht den Agenten in Kanälen noch nicht sichtbar oder durchsuchbar. Beim Ausführen dieses Schritts mit ",[495,1207,1208],{},"buzz-cli"," muss der Parameter ",[495,1211,1212],{},"--pubkey"," im ",[441,1215,1216],{},"HEX","-Format angegeben werden, nicht als npub (der Befehl ",[495,1219,1220],{},"buzz-admin add-member"," gibt den entsprechenden HEX-Schlüssel aus):",[926,1223,1225],{"className":1035,"code":1224,"language":1037,"meta":425,"style":425},"buzz channels add-member --channel \u003CCHANNEL_UUID> --pubkey \u003CAGENT_HEX> --role member\n",[495,1226,1227],{"__ignoreMap":425},[934,1228,1229,1232,1235,1237,1240,1243,1246,1249,1252,1254,1256,1259,1262,1264,1267],{"class":936,"line":937},[934,1230,1231],{"class":1044},"buzz",[934,1233,1234],{"class":1048}," channels",[934,1236,1193],{"class":1048},[934,1238,1239],{"class":1048}," --channel",[934,1241,1242],{"class":948}," \u003C",[934,1244,1245],{"class":1048},"CHANNEL_UUI",[934,1247,1248],{"class":944},"D",[934,1250,1251],{"class":948},">",[934,1253,1196],{"class":1048},[934,1255,1242],{"class":948},[934,1257,1258],{"class":1048},"AGENT_HE",[934,1260,1261],{"class":944},"X",[934,1263,1251],{"class":948},[934,1265,1266],{"class":1048}," --role",[934,1268,1269],{"class":1048}," member\n",[463,1271],{"description":1272,"image":466,"image-alt":467,"label":1273,"min-read":1274,"title":1275,"to":1276},"Schritt-für-Schritt-Anleitung zur Installation und Konfiguration von buzz-cli zur Verwaltung von Nostr-Kanälen, Mitgliedsschlüsseln und Berechtigungen für KI-Agenten.","CLI-Anleitung","5","So installieren und verwenden Sie buzz-cli","\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues#install-buzz-cli",[430,1278,1279,1280,891],{},"Aktualisieren Sie das Profil des DSH-Assistenten im Nostr-Relay auf einen aussagekräftigen Anzeigenamen mittels ",[495,1281,1208],{},[430,1283,1284],{},[433,1285],{"alt":1286,"src":1287},"Aktualisierung des Profilnamens des DSH-Assistenten auf dem Nostr-Relay mit buzz-cli","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-assistant-buzz-cli-profile-update.webp",[430,1289,1290,1291,1294],{},"Senden Sie ein ",[441,1292,1293],{},"Wave"," (die Direktnachrichten-Begrüßung in Buzz) an den Assistenten. Die Antwort bestätigt die Betriebsbereitschaft:",[430,1296,1297],{},[433,1298],{"alt":1299,"src":1300},"Verbindungstest durch Senden eines Wave-DMs an den DeepSeek Harness-Assistenten in Buzz","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-dm-wave-greeting-reply.webp",[430,1302,1303],{},[901,1304,1305],{},"Senden eines Wave als DM an den DSH-Assistenten — die Bridge antwortet prompt.",[881,1307,1309,1310,1313],{"id":1308},"lokalen-ordnerzugriff-mit-workspace-aktivieren","Lokalen Ordnerzugriff mit ",[495,1311,1312],{},"\u002Fworkspace"," aktivieren",[430,1315,1316,1317,1320,1321,1324,1325,1327],{},"Da die Einstellung ",[495,1318,1319],{},"allowWorkspace"," standardmäßig auf ",[495,1322,1323],{},"false"," gesetzt ist, wird der Befehl ",[495,1326,1312],{}," zunächst abgewiesen:",[430,1329,1330],{},[433,1331],{"alt":1332,"src":1333},"Fehlermeldung bei der Ablehnung des Workspace-Befehls bei deaktiviertem allowWorkspace","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-workspace-command-rejected-error.webp",[430,1335,1336,1337,1340,1341,1343],{},"Aktivieren Sie die Option in ",[495,1338,1339],{},"~\u002F.dsh\u002Fprofiles\u002Fweb\u002Fcordis.patch.yml"," und starten Sie ",[495,1342,591],{}," neu:",[926,1345,1349],{"className":1346,"code":1347,"language":1348,"meta":425,"style":425},"language-yml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","- id: ui-message-gateway\n  config:\n    allowWorkspace: true\n","yml",[495,1350,1351,1365,1373],{"__ignoreMap":425},[934,1352,1353,1356,1360,1362],{"class":936,"line":937},[934,1354,1355],{"class":948},"-",[934,1357,1359],{"class":1358},"swJcz"," id",[934,1361,891],{"class":948},[934,1363,1364],{"class":1048}," ui-message-gateway\n",[934,1366,1367,1370],{"class":936,"line":1064},[934,1368,1369],{"class":1358},"  config",[934,1371,1372],{"class":948},":\n",[934,1374,1375,1378,1380],{"class":936,"line":1071},[934,1376,1377],{"class":1358},"    allowWorkspace",[934,1379,891],{"class":948},[934,1381,1383],{"class":1382},"sfNiH"," true\n",[430,1385,1386],{},"Nach dem Neustart:",[430,1388,1389],{},[433,1390],{"alt":1391,"src":1392},"Erfolgreiche Bestätigungsmeldung nach Ausführung des Workspace-Registrierungsbefehls in Buzz","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-buzz-workspace-command-success-confirmation.webp",[430,1394,1395,1396,1399],{},"Wichtiger Hinweis: Die Konfiguration geht davon aus, dass der Workspace-Ordner (",[495,1397,1398],{},"TechVoyage"," in den Screenshots) im Standard-Benutzerverzeichnis liegt. Geben Sie andernfalls den vollständigen absoluten Pfad an. Jede neue über Buzz gestartete Sitzung wird auch in der Weboberfläche von DeepSeek Harness aufgeführt.",[430,1401,1402],{},[433,1403],{"alt":1404,"src":1405},"DeepSeek Harness-Weboberfläche mit der aus Buzz synchronisierten aktiven Workspace-Sitzung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002Fdsh-web-ui-synced-workspace-session.webp",[881,1407,1409],{"id":1408},"verfügbare-befehle-in-buzz","Verfügbare Befehle in Buzz",[430,1411,1412],{},"Alle von anderen Plattformen bekannten Befehle stehen auch in Buzz uneingeschränkt bereit:",[604,1414,1415,1425],{},[607,1416,1417],{},[610,1418,1419,1422],{},[613,1420,1421],{},"Befehl",[613,1423,1424],{},"Funktion",[634,1426,1427,1437,1447,1457,1467,1477,1487,1497,1507,1527,1547],{},[610,1428,1429,1434],{},[639,1430,1431],{},[495,1432,1433],{},"\u002Fworkspace \u003Cfolder>",[639,1435,1436],{},"Registriert einen bestehenden Ordner als Workspace des Chats (erfordert Freigabe in der Konfiguration)",[610,1438,1439,1444],{},[639,1440,1441],{},[495,1442,1443],{},"\u002Fhelp",[639,1445,1446],{},"Listet alle verfügbaren Befehle auf",[610,1448,1449,1454],{},[639,1450,1451],{},[495,1452,1453],{},"\u002Ftime",[639,1455,1456],{},"Zeigt die aktuelle Serverzeit an",[610,1458,1459,1464],{},[639,1460,1461],{},[495,1462,1463],{},"\u002Fnew",[639,1465,1466],{},"Startet eine frische, saubere Sitzung",[610,1468,1469,1474],{},[639,1470,1471],{},[495,1472,1473],{},"\u002Fclear",[639,1475,1476],{},"Löscht den bisherigen Gesprächsverlauf",[610,1478,1479,1484],{},[639,1480,1481],{},[495,1482,1483],{},"\u002Fstatus",[639,1485,1486],{},"Gibt den aktuellen Betriebszustand der Bridge aus",[610,1488,1489,1494],{},[639,1490,1491],{},[495,1492,1493],{},"\u002Fstats",[639,1495,1496],{},"Liefert Chat-Zähler und detaillierte Statuszeilen aller Bridges (inklusive Buzz)",[610,1498,1499,1504],{},[639,1500,1501],{},[495,1502,1503],{},"\u002Fcommands",[639,1505,1506],{},"Detaillierte Übersicht aller Befehlsbeschreibungen",[610,1508,1509,1514],{},[639,1510,1511],{},[495,1512,1513],{},"@path\u002Fto\u002Ffile",[639,1515,1516,1517,744,1519,1522,1523,1526],{},"Verhält sich wie @-Dateierwähnungen im Web: Das Modell liest die Datei relativ zum Chat-Workspace; ",[495,1518,831],{},[495,1520,1521],{},"@präfix"," oder ",[495,1524,1525],{},"\u002Ffiles \u003Cpräfix>"," antwortet mit passenden Dateien\u002FOrdnern",[610,1528,1529,1534],{},[639,1530,1531],{},[495,1532,1533],{},"\u002Fmodel",[639,1535,1536,1539,1540,1542,1543,1546],{},[495,1537,1538],{},"[provider model effort]"," — validiert gegen den aktiven Modellkatalog; ",[495,1541,1533],{}," listet Optionen, ",[495,1544,1545],{},"\u002Fmodel reset"," setzt auf Standard zurück",[610,1548,1549,1554],{},[639,1550,1551],{},[495,1552,1553],{},"\u002Feffort",[639,1555,1556,1559,1560,1563],{},[495,1557,1558],{},"\u003Cid>"," passt gezielt die Reasoning-Anstrengung an; ",[495,1561,1562],{},"\u002Feffort reset"," setzt den Standardwert wieder ein",[881,1565,1567],{"id":1566},"sicherheitsaspekte-im-überblick","Sicherheitsaspekte im Überblick",[485,1569,1570,1583,1593],{},[488,1571,1572,1573,1575,1576,1578,1579,1582],{},"Der private Schlüssel ",[441,1574,1153],{}," liegt geschützt in ",[495,1577,501],{}," (Rechte 0600, atomare Schreibvorgänge) — er wird niemals über ",[495,1580,1581],{},"\u002Fgateway\u002Flist"," exponiert oder in Protokollen ausgegeben.",[488,1584,1585,1586,510,1589,1592],{},"Jedes eingehende Event wird ",[441,1587,1588],{},"kryptografisch signaturgeprüft",[495,1590,1591],{},"verifyEvent","), dedupliziert, auf Selbstaussendung gefiltert und durch Erwähnungsprüfungen geleitet, bevor es den Agenten erreicht.",[488,1594,1595,510,1598,1601],{},[441,1596,1597],{},"Die Workspace-Registrierung ist strikt konfigurationsgesteuert",[495,1599,1600],{},"allowWorkspace: false"," als Standard), um unbefugten Zugriff auf lokale Systemverzeichnisse abzusichern.",[474,1603,1605],{"id":1604},"fazit-dezentrale-ki-zusammenarbeit-in-buzz","Fazit: Dezentrale KI-Zusammenarbeit in Buzz",[430,1607,1608,1609,1611],{},"Die größte Herausforderung bei der Integration von Buzz in ",[495,1610,449],{}," lag in der konsequenten Erfüllung des Nostr-Protokollvertrags. Da die Plugin-Basis bereits eine ausgereifte Sitzungsverwaltung und Befehlsweiterleitung bot, fügte sich die Bridge nahtlos ein, sobald Event-Verarbeitung und In-Place-Streaming etabliert waren.",[474,1613,1615],{"id":1614},"referenzen","Referenzen:",[485,1617,1618,1626,1634],{},[488,1619,1620,1625],{},[444,1621,1624],{"href":1622,"rel":1623},"https:\u002F\u002Fgithub.com\u002Fa792883583\u002Fdsh-message-gateway\u002Fblob\u002Fmain\u002Fdocs\u002Farchitecture.md",[448],"dsh-message-gateway architecture guide"," — Architekturleitfaden, Erweiterungsanleitung und Sicherheitshinweise",[488,1627,1628,1633],{},[444,1629,1632],{"href":1630,"rel":1631},"https:\u002F\u002Fgithub.com\u002Fnbd-wtf\u002Fnostr-tools",[448],"nostr-tools"," — Unter der Haube verwendete Nostr-Bibliothek",[488,1635,1636,1641],{},[444,1637,1640],{"href":1638,"rel":1639},"https:\u002F\u002Fgithub.com\u002Fbytedance\u002Fdeer-flow\u002Fblob\u002Fmain\u002Fbackend\u002Fdocs\u002FIM_CHANNEL_CONNECTIONS.md",[448],"deer-flow IM channel connections"," — Referenzarchitektur für Instant-Messaging-Kanäle",[1643,1644,1645],"style",{},"html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":425,"searchDepth":1064,"depth":1071,"links":1647},[1648,1649,1653,1660,1661],{"id":476,"depth":1064,"text":477},{"id":595,"depth":1064,"text":596,"children":1650},[1651,1652],{"id":883,"depth":1071,"text":884},{"id":912,"depth":1071,"text":913},{"id":1026,"depth":1064,"text":1027,"children":1654},[1655,1656,1658,1659],{"id":1159,"depth":1071,"text":1160},{"id":1308,"depth":1071,"text":1657},"Lokalen Ordnerzugriff mit \u002Fworkspace aktivieren",{"id":1408,"depth":1071,"text":1409},{"id":1566,"depth":1071,"text":1567},{"id":1604,"depth":1064,"text":1605},{"id":1614,"depth":1064,"text":1615},[1663,1664,1231,1665],"ai-agents","collaboration","deepseek-harness","2026-09-30","Integrieren Sie DeepSeek Harness über eine Nostr-Bridge in Block Buzz: NIP-42-Auth, In-Place-Streaming-Edits und kanalbezogene Agenten-Workspaces konfigurieren.","md","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FBringing%20Buzz%20to%20DeepSeek%20Harness\u002FDE-Bringing-Buzz-to-DeepSeek-Harness.webp","Eine Premium-Technologiekarte im Format 16:9 mit tiefblauen und bernsteinfarbenen Akzenten, die zeigt, wie DeepSeek Harness über eine Nostr-Bridge mit Block Buzz verbunden wird, mit einem sauberen glassmorphic Panel und zentrierter Typografie.",{"schemaOrg":1672,"robots":1697,"sitemap":1698},[1673,1675],{"@type":1674,"headline":424,"description":1667,"image":1669},"TechArticle",{"@type":1676,"name":424,"description":1667,"image":1669,"step":1677},"HowTo",[1678,1682,1685,1688,1691,1694],{"@type":1679,"name":1680,"text":1681},"HowToStep","Phase 1: Gateway-Plugin installieren","Installieren Sie das dsh-message-gateway-Plugin und starten Sie dsh web.",{"@type":1679,"name":1683,"text":1684},"Phase 2: Message platforms aufrufen","Öffnen Sie die DSH-Weboberfläche und navigieren Sie zu den Message platforms-Einstellungen.",{"@type":1679,"name":1686,"text":1687},"Phase 3: Buzz-Bridge konfigurieren","Erstellen Sie ein Nostr-Schlüsselpaar, geben Sie Relay-URL und Kanäle ein.",{"@type":1679,"name":1689,"text":1690},"Phase 4: Agenten am Relay registrieren","Fügen Sie den DSH-Assistenten dem Buzz-Nostr-Relay mittels buzz-admin hinzu.",{"@type":1679,"name":1692,"text":1693},"Phase 5: Agenten dem Kanal zuweisen","Fügen Sie den HEX-Schlüssel des Agenten den Kanälen mit buzz-cli hinzu.",{"@type":1679,"name":1695,"text":1696},"Phase 6: Workspace-Zugriff aktivieren","Konfigurieren Sie allowWorkspace in cordis.patch.yml für lokale Ordnerbefehle.","index, follow",{"lastmod":1666},10,{"title":1701,"description":1667,"ogTitle":424,"ogDescription":1667,"twitterTitle":424,"twitterDescription":1667},"DeepSeek Harness Buzz-Plugin: Eine Nostr-Bridge bauen","de\u002Farticle\u002Fbringing-buzz-to-deepseek-harness",[601,1105,1704,1705,449],"Nostr","KI-Agenten",null,"W1AnbP8Pn_ksP_Ix4QOaKpOvfVjrKH3GkFsTa1Ui9KA",{"id":1709,"title":1710,"author":425,"body":1711,"category":2607,"date":2609,"description":2610,"extension":1668,"image":2611,"imageAlt":2612,"isPublished":1067,"meta":2613,"minRead":2286,"navigation":1067,"path":11,"seo":2647,"stem":2649,"tags":2650,"updatedAt":2646,"__hash__":2654},"article\u002Fde\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp.md","Den Hermes Agent privat mit Cloudflare WARP freigeben",{"type":427,"value":1712,"toc":2589},[1713,1727,1737,1741,1744,1756,1760,1768,1772,1776,1826,1830,1967,1971,2004,2008,2011,2077,2080,2116,2119,2146,2150,2161,2166,2205,2294,2298,2303,2320,2329,2408,2413,2459,2463,2509,2524,2528,2572,2576,2586],[430,1714,1715,1716,1719,1720,760,1723,1726],{},"Eine häufige Herausforderung entsteht, wenn Sie von anderen Geräten wie Laptops, Tablets oder Telefonen auf Ihren ",[441,1717,1718],{},"Hermes Agent"," zugreifen möchten, ohne ihn dem öffentlichen Internet preiszugeben. Durch die Nutzung von ",[441,1721,1722],{},"Cloudflare WARP",[441,1724,1725],{},"Cloudflare Zero Trust"," können Sie den Hermes Agent weltweit verfügbar machen, ohne einen einzigen eingehenden Port an Ihrer Firewall öffnen zu müssen.",[430,1728,1729,1730,1733,1734,1736],{},"Wenn Sie unserer vorherigen Anleitung, '",[444,1731,1732],{"href":375},"Anleitung zur Bereitstellung des Hermes Agents auf Linux-VPS","', gefolgt sind, läuft bereits ein Hermes Agent rund um die Uhr. Anstatt sich mit dem Mehraufwand herkömmlicher VPNs zu befassen, werden wir den ",[441,1735,1722],{},"-Client verwenden, um den Hermes Agent über das Internet in einem privaten Netzwerk bereitzustellen.",[474,1738,1740],{"id":1739},"die-architektur-verstehen","Die Architektur verstehen",[430,1742,1743],{},"Die beteiligten Komponenten:",[533,1745,1746,1751],{},[488,1747,1748,1750],{},[441,1749,1725],{},": Das Dashboard bei Cloudflare, in dem Sie Routing-Regeln und Zugriffsrichtlinien definieren.",[488,1752,1753,1755],{},[441,1754,1722],{},": Die Client-Anwendung, die auf Ihren Geräten (VPS, Laptops, Telefone) installiert ist. Sie fängt den für Ihr privates Netzwerk bestimmten Datenverkehr ab und leitet ihn sicher weiter.",[881,1757,1759],{"id":1758},"voraussetzungen","Voraussetzungen",[485,1761,1762,1765],{},[488,1763,1764],{},"Ein laufender Hermes Agent auf Ihrem VPS.",[488,1766,1767],{},"Ein kostenloses Cloudflare-Konto.",[474,1769,1771],{"id":1770},"schritt-für-schritt-anleitung","Schritt-für-Schritt-Anleitung",[881,1773,1775],{"id":1774},"schritt-1-cloudflare-zero-trust-einrichten","Schritt 1: Cloudflare Zero Trust einrichten",[533,1777,1778,1787,1794,1805,1812,1819],{},[488,1779,1780,1781,1786],{},"Melden Sie sich bei Ihrem ",[444,1782,1785],{"href":1783,"rel":1784},"https:\u002F\u002Fdash.cloudflare.com\u002F",[448],"Cloudflare Dashboard"," an.",[488,1788,1789,1790],{},"Klicken Sie im linken Menü auf 'Zero Trust'.\n",[433,1791],{"alt":1792,"src":1793},"Navigationsmenü in der linken Seitenleiste des Cloudflare-Dashboards mit der Option Zero Trust","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-left-menu.webp",[488,1795,1796,1797,1800,1801],{},"Wenn dies Ihr erstes Mal ist, werden Sie aufgefordert, einen Tarif zu wählen (der kostenlose Tarif reicht für dieses Setup völlig aus) und Ihr Team zu benennen (z. B. ",[495,1798,1799],{},"ai-team",").\n",[433,1802],{"alt":1803,"src":1804},"Einrichten des ersten Cloudflare Zero Trust-Kontos und Benennen des Teams","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-team-setup.webp",[488,1806,1807,1808],{},"Klicken Sie auf 'Access' und dann auf 'Policies', um eine Zugriffsrichtlinie zu erstellen, die festlegt, wer Zugriff auf das Netzwerk hat.\n",[433,1809],{"alt":1810,"src":1811},"Cloudflare Zero Trust Access-Richtlinienseite mit den neu konfigurierten Zugriffsregeln","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-access-policies-page.webp",[488,1813,1814,1815],{},"Klicken Sie auf 'Create new policy'.\n",[433,1816],{"alt":1817,"src":1818},"Cloudflare Access policies page showing no policies added and a button to create a new policy.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-no-policies-create-button.png",[488,1820,1821,1822],{},"Wählen Sie 'Emails' und geben Sie Ihre E-Mail-Adresse unter 'Policy rules' ein.\n",[433,1823],{"alt":1824,"src":1825},"Cloudflare Access policy rule configuration screen with an email address specified as the inclusion criteria.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20secure%20NodeWarden%20at%20Cloudflare\u002Fcloudflare-access-policy-rule-email.png",[881,1827,1829],{"id":1828},"schritt-2-den-cloudflare-warp-client-auf-dem-vps-einrichten","Schritt 2: Den Cloudflare WARP-Client auf dem VPS einrichten",[533,1831,1832,1842,1848,1855,1858,1873,1876,1960],{},[488,1833,1834,1835,576,1838,1841],{},"Führen Sie ",[495,1836,1837],{},"sudo apt update",[495,1839,1840],{},"sudo apt install cloudflare-warp"," im Terminal auf Ihrem VPS aus.",[488,1843,1834,1844,1847],{},[495,1845,1846],{},"warp-cli registration new \u003CTEAM-NAME>"," im Terminal auf Ihrem VPS aus, was eine URL ausgibt.",[488,1849,1850,1851,1854],{},"Kopieren Sie die ausgegebene URL, die wie ",[495,1852,1853],{},"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fwarp"," aussieht, und fügen Sie sie zur Authentifizierung in Ihren Browser ein.",[488,1856,1857],{},"Da bei der oben genannten Richtlinieneinrichtung die E-Mail-Authentifizierung verwendet wird, geben Sie Ihre E-Mail-Adresse ein, um sich zu authentifizieren.",[488,1859,1860,1861,1864,1865,1868,1869,1872],{},"Klicken Sie auf der Seite '",[441,1862,1863],{},"Success","' (Erfolg) im Browser mit der rechten Maustaste auf die blaue Schaltfläche '",[441,1866,1867],{},"Open Cloudflare WARP","' und wählen Sie '",[441,1870,1871],{},"Inspect","' (Untersuchen).",[488,1874,1875],{},"Kopieren Sie den langen Token, der im Link der Schaltfläche angezeigt wird.",[488,1877,1834,1878,1881,1882,1885,1886],{},[495,1879,1880],{},"warp-cli --accept-tos registration token \"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>\""," im Terminal auf Ihrem VPS aus, um es mit Cloudflare Zero Trust zu verbinden.",[1883,1884],"br",{},"Falls der Fehler 'Error: Failed to communicate with the WARP API' auf Ubuntu 26 auftritt, führen Sie die folgenden Befehle aus:",[926,1887,1889],{"className":1035,"code":1888,"language":1037,"meta":425,"style":425},"sudo systemctl restart warp-svc.service\n\n# Check status\nsudo systemctl status warp-svc.service\n\n# Run the warp-cli registration token again\nwarp-cli --accept-tos registration token   \"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>\"\n",[495,1890,1891,1905,1909,1914,1925,1930,1936],{"__ignoreMap":425},[934,1892,1893,1896,1899,1902],{"class":936,"line":937},[934,1894,1895],{"class":1044},"sudo",[934,1897,1898],{"class":1048}," systemctl",[934,1900,1901],{"class":1048}," restart",[934,1903,1904],{"class":1048}," warp-svc.service\n",[934,1906,1907],{"class":936,"line":1064},[934,1908,1068],{"emptyLinePlaceholder":1067},[934,1910,1911],{"class":936,"line":1071},[934,1912,1913],{"class":1074},"# Check status\n",[934,1915,1916,1918,1920,1923],{"class":936,"line":1078},[934,1917,1895],{"class":1044},[934,1919,1898],{"class":1048},[934,1921,1922],{"class":1048}," status",[934,1924,1904],{"class":1048},[934,1926,1928],{"class":936,"line":1927},5,[934,1929,1068],{"emptyLinePlaceholder":1067},[934,1931,1933],{"class":936,"line":1932},6,[934,1934,1935],{"class":1074},"# Run the warp-cli registration token again\n",[934,1937,1939,1942,1945,1948,1951,1954,1957],{"class":936,"line":1938},7,[934,1940,1941],{"class":1044},"warp-cli",[934,1943,1944],{"class":1048}," --accept-tos",[934,1946,1947],{"class":1048}," registration",[934,1949,1950],{"class":1048}," token",[934,1952,1953],{"class":948},"   \"",[934,1955,1956],{"class":1048},"https:\u002F\u002F\u003Cteam>.cloudflareaccess.com\u002Fauth?token=\u003Ccopied_token>",[934,1958,1959],{"class":948},"\"\n",[488,1961,1962,1963],{},"Kehren Sie zum Cloudflare Zero Trust-Dashboard zurück und klicken Sie auf 'Devices' (Geräte). Ihr VPS-Gerät sollte nun angezeigt werden.\n",[433,1964],{"alt":1965,"src":1966},"Zero Trust-Geräte-Dashboard zur Bestätigung, dass der Linux-VPS verbunden ist","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-devices-vps-connected.webp",[881,1968,1970],{"id":1969},"schritt-3-datenverkehr-routing-einrichten","Schritt 3: Datenverkehr-Routing einrichten",[533,1972,1973,1980,1987,1994],{},[488,1974,1975,1976],{},"Klicken Sie im Geräte-Dashboard auf das Profil Ihres VPS.\n",[433,1977],{"alt":1978,"src":1979},"Zugriff auf Details und Split-Tunnel-Einstellungen für das registrierte VPS-Gerät","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-device-profile.webp",[488,1981,1982,1983],{},"Scrollen Sie nach unten zum Abschnitt 'Split Tunnels'.\n",[433,1984],{"alt":1985,"src":1986},"Abschnitt Split Tunnels unter den VPS-Profil-Einstellungen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-split-tunnels-section.webp",[488,1988,1989,1990],{},"Klicken Sie auf die Schaltfläche 'Manage' (Verwalten) und konfigurieren Sie die Einstellungen wie unten gezeigt. Ersetzen Sie die IP-Adresse bei Bedarf.\n",[433,1991],{"alt":1992,"src":1993},"Verwalten von Split-Tunnel-IP- und Hostnamen-Ausschlüssen in den Cloudflare-Einstellungen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-zero-trust-manage-split-tunnels.webp",[488,1995,1996,1997,576,2000,2003],{},"Durch die Freigabe von ",[495,1998,1999],{},"address",[495,2001,2002],{},"host"," wird der Datenverkehr über dasselbe private Netzwerk an Ihre Dienste weitergeleitet.",[881,2005,2007],{"id":2006},"schritt-4-firewall-auf-dem-vps-konfigurieren","Schritt 4: Firewall auf dem VPS konfigurieren",[430,2009,2010],{},"Aktivieren Sie die Firewall so, dass nur das Subnetz '100.96.0.0\u002F12' zugelassen wird und alle anderen öffentlichen eingehenden Zugriffe blockiert werden.",[926,2012,2014],{"className":1035,"code":2013,"language":1037,"meta":425,"style":425},"sudo ufw enable \nsudo ufw default allow outgoing \nsudo ufw default deny incoming\nsudo ufw allow in from 100.96.0.0\u002F12\n",[495,2015,2016,2029,2046,2060],{"__ignoreMap":425},[934,2017,2018,2020,2023,2026],{"class":936,"line":937},[934,2019,1895],{"class":1044},[934,2021,2022],{"class":1048}," ufw",[934,2024,2025],{"class":1048}," enable",[934,2027,2028],{"class":944}," \n",[934,2030,2031,2033,2035,2038,2041,2044],{"class":936,"line":1064},[934,2032,1895],{"class":1044},[934,2034,2022],{"class":1048},[934,2036,2037],{"class":1048}," default",[934,2039,2040],{"class":1048}," allow",[934,2042,2043],{"class":1048}," outgoing",[934,2045,2028],{"class":944},[934,2047,2048,2050,2052,2054,2057],{"class":936,"line":1071},[934,2049,1895],{"class":1044},[934,2051,2022],{"class":1048},[934,2053,2037],{"class":1048},[934,2055,2056],{"class":1048}," deny",[934,2058,2059],{"class":1048}," incoming\n",[934,2061,2062,2064,2066,2068,2071,2074],{"class":936,"line":1078},[934,2063,1895],{"class":1044},[934,2065,2022],{"class":1048},[934,2067,2040],{"class":1048},[934,2069,2070],{"class":1048}," in",[934,2072,2073],{"class":1048}," from",[934,2075,2076],{"class":1048}," 100.96.0.0\u002F12\n",[430,2078,2079],{},"Lassen Sie Loopback-Datenverkehr zu, um lokale Dienste nicht zu unterbrechen:",[926,2081,2083],{"className":1035,"code":2082,"language":1037,"meta":425,"style":425},"sudo ufw allow in on lo\nsudo ufw allow out on lo\n",[495,2084,2085,2101],{"__ignoreMap":425},[934,2086,2087,2089,2091,2093,2095,2098],{"class":936,"line":937},[934,2088,1895],{"class":1044},[934,2090,2022],{"class":1048},[934,2092,2040],{"class":1048},[934,2094,2070],{"class":1048},[934,2096,2097],{"class":1048}," on",[934,2099,2100],{"class":1048}," lo\n",[934,2102,2103,2105,2107,2109,2112,2114],{"class":936,"line":1064},[934,2104,1895],{"class":1044},[934,2106,2022],{"class":1048},[934,2108,2040],{"class":1048},[934,2110,2111],{"class":1048}," out",[934,2113,2097],{"class":1048},[934,2115,2100],{"class":1048},[430,2117,2118],{},"Laden Sie die Firewall neu und überprüfen Sie den Status:",[926,2120,2122],{"className":1035,"code":2121,"language":1037,"meta":425,"style":425},"sudo ufw reload \nsudo ufw status verbose\n",[495,2123,2124,2135],{"__ignoreMap":425},[934,2125,2126,2128,2130,2133],{"class":936,"line":937},[934,2127,1895],{"class":1044},[934,2129,2022],{"class":1048},[934,2131,2132],{"class":1048}," reload",[934,2134,2028],{"class":944},[934,2136,2137,2139,2141,2143],{"class":936,"line":1064},[934,2138,1895],{"class":1044},[934,2140,2022],{"class":1048},[934,2142,1922],{"class":1048},[934,2144,2145],{"class":1048}," verbose\n",[881,2147,2149],{"id":2148},"schritt-5-den-hermes-agent-im-privaten-netzwerk-freigeben","Schritt 5: Den Hermes Agent im privaten Netzwerk freigeben",[430,2151,2152,2153,2156,2157,2160],{},"Wir werden das ",[441,2154,2155],{},"Hermes Agent Web Dashboard"," für unser privates Netzwerk freigeben und den Standard-Authentifizierungsanbieter ",[441,2158,2159],{},"Nous Research"," verwenden.",[2162,2163,2165],"h4",{"id":2164},"den-authentifizierungsanbieter-einrichten","Den Authentifizierungsanbieter einrichten",[533,2167,2168,2177,2184,2191,2198],{},[488,2169,2170,2171,2176],{},"Gehen Sie zu ",[444,2172,2175],{"href":2173,"rel":2174},"https:\u002F\u002Fportal.nousresearch.com",[448],"portal.nousresearch.com",", um ein Konto zu registrieren.",[488,2178,2179,2180],{},"Wählen Sie 'Local Dashboards' (Lokale Dashboards).\n",[433,2181],{"alt":2182,"src":2183},"Auswählen der Option Local Dashboards im Nous Research-Portal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-local-dashboards-selection.webp",[488,2185,2186,2187],{},"Klicken Sie auf 'Register Dashboard' (Dashboard registrieren).\n",[433,2188],{"alt":2189,"src":2190},"Klicken auf die Schaltfläche Register Dashboard, um einen neuen Dashboard-Eintrag zu erstellen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-register-dashboard.webp",[488,2192,2193,2194],{},"Geben Sie die IP-Adresse des privaten Netzwerks Ihres VPS als 'Dashboard redirect URI' ein und klicken Sie auf 'Save' (Speichern).\n",[433,2195],{"alt":2196,"src":2197},"Registrieren der privaten VPS-IP-Adresse als Redirect-URI im Nous Research-Portal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fnous-portal-register-redirect-uri.webp",[488,2199,2200,2201,2204],{},"Kopieren Sie die 'OAuth client ID' und fügen Sie sie in Ihre ",[495,2202,2203],{},"config.yaml","-Datei ein:",[926,2206,2210],{"className":2207,"code":2208,"language":2209,"meta":425,"style":425},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dashboard:\n  theme: default\n  show_token_analytics: false\n  oauth:\n    client_id: agent:cmq02x7ha0002jk0ba3kfnb\n    portal_url: https:\u002F\u002Fportal.nousresearch.com\n  basic_auth:\n    username: ''\n    password_hash: ''\n","yaml",[495,2211,2212,2219,2229,2239,2246,2256,2266,2273,2284],{"__ignoreMap":425},[934,2213,2214,2217],{"class":936,"line":937},[934,2215,2216],{"class":1358},"dashboard",[934,2218,1372],{"class":948},[934,2220,2221,2224,2226],{"class":936,"line":1064},[934,2222,2223],{"class":1358},"  theme",[934,2225,891],{"class":948},[934,2227,2228],{"class":1048}," default\n",[934,2230,2231,2234,2236],{"class":936,"line":1071},[934,2232,2233],{"class":1358},"  show_token_analytics",[934,2235,891],{"class":948},[934,2237,2238],{"class":1382}," false\n",[934,2240,2241,2244],{"class":936,"line":1078},[934,2242,2243],{"class":1358},"  oauth",[934,2245,1372],{"class":948},[934,2247,2248,2251,2253],{"class":936,"line":1927},[934,2249,2250],{"class":1358},"    client_id",[934,2252,891],{"class":948},[934,2254,2255],{"class":1048}," agent:cmq02x7ha0002jk0ba3kfnb\n",[934,2257,2258,2261,2263],{"class":936,"line":1932},[934,2259,2260],{"class":1358},"    portal_url",[934,2262,891],{"class":948},[934,2264,2265],{"class":1048}," https:\u002F\u002Fportal.nousresearch.com\n",[934,2267,2268,2271],{"class":936,"line":1938},[934,2269,2270],{"class":1358},"  basic_auth",[934,2272,1372],{"class":948},[934,2274,2276,2279,2281],{"class":936,"line":2275},8,[934,2277,2278],{"class":1358},"    username",[934,2280,891],{"class":948},[934,2282,2283],{"class":948}," ''\n",[934,2285,2287,2290,2292],{"class":936,"line":2286},9,[934,2288,2289],{"class":1358},"    password_hash",[934,2291,891],{"class":948},[934,2293,2283],{"class":948},[2162,2295,2297],{"id":2296},"systemd-einrichten-um-das-hermes-dashboard-automatisch-zu-starten","Systemd einrichten, um das Hermes Dashboard automatisch zu starten",[533,2299,2300],{},[488,2301,2302],{},"Erstellen Sie eine Service-Datei:",[926,2304,2308],{"className":2305,"code":2306,"language":2307,"meta":425,"style":425},"language-shell shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","sudo nano \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-dashboard.service\n","shell",[495,2309,2310],{"__ignoreMap":425},[934,2311,2312,2314,2317],{"class":936,"line":937},[934,2313,1895],{"class":1044},[934,2315,2316],{"class":1048}," nano",[934,2318,2319],{"class":1048}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-dashboard.service\n",[533,2321,2322],{"start":1064},[488,2323,2324,2325,2328],{},"Fügen Sie die folgende Konfiguration ein und stellen Sie sicher, dass ",[495,2326,2327],{},"--host 0.0.0.0"," Teil des Befehls ist:",[926,2330,2334],{"className":2331,"code":2332,"language":2333,"meta":425,"style":425},"language-ini shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","[Unit]\nDescription=Hermes Dashboard\nAfter=network.target\n\n[Service]\nUser=hermes\nWorkingDirectory=\u002Fhome\u002Fhermes\nExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes dashboard --host 0.0.0.0\nRestart=always\nRestartSec=10\nEnvironment=PATH=\u002Fhome\u002Fhermes\u002F.local\u002Fbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fbin:\u002Fbin\n\n[Install]\nWantedBy=multi-user.target\n","ini",[495,2335,2336,2341,2346,2351,2355,2360,2365,2370,2375,2380,2385,2391,2396,2402],{"__ignoreMap":425},[934,2337,2338],{"class":936,"line":937},[934,2339,2340],{},"[Unit]\n",[934,2342,2343],{"class":936,"line":1064},[934,2344,2345],{},"Description=Hermes Dashboard\n",[934,2347,2348],{"class":936,"line":1071},[934,2349,2350],{},"After=network.target\n",[934,2352,2353],{"class":936,"line":1078},[934,2354,1068],{"emptyLinePlaceholder":1067},[934,2356,2357],{"class":936,"line":1927},[934,2358,2359],{},"[Service]\n",[934,2361,2362],{"class":936,"line":1932},[934,2363,2364],{},"User=hermes\n",[934,2366,2367],{"class":936,"line":1938},[934,2368,2369],{},"WorkingDirectory=\u002Fhome\u002Fhermes\n",[934,2371,2372],{"class":936,"line":2275},[934,2373,2374],{},"ExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes dashboard --host 0.0.0.0\n",[934,2376,2377],{"class":936,"line":2286},[934,2378,2379],{},"Restart=always\n",[934,2381,2382],{"class":936,"line":1699},[934,2383,2384],{},"RestartSec=10\n",[934,2386,2388],{"class":936,"line":2387},11,[934,2389,2390],{},"Environment=PATH=\u002Fhome\u002Fhermes\u002F.local\u002Fbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fbin:\u002Fbin\n",[934,2392,2394],{"class":936,"line":2393},12,[934,2395,1068],{"emptyLinePlaceholder":1067},[934,2397,2399],{"class":936,"line":2398},13,[934,2400,2401],{},"[Install]\n",[934,2403,2405],{"class":936,"line":2404},14,[934,2406,2407],{},"WantedBy=multi-user.target\n",[533,2409,2410],{"start":1071},[488,2411,2412],{},"Aktivieren und starten Sie den Dienst:",[926,2414,2416],{"className":2305,"code":2415,"language":2307,"meta":425,"style":425},"sudo systemctl daemon-reload\nsudo systemctl enable hermes-dashboard\nsudo systemctl start hermes-dashboard\nsudo systemctl status hermes-dashboard\n",[495,2417,2418,2427,2438,2449],{"__ignoreMap":425},[934,2419,2420,2422,2424],{"class":936,"line":937},[934,2421,1895],{"class":1044},[934,2423,1898],{"class":1048},[934,2425,2426],{"class":1048}," daemon-reload\n",[934,2428,2429,2431,2433,2435],{"class":936,"line":1064},[934,2430,1895],{"class":1044},[934,2432,1898],{"class":1048},[934,2434,2025],{"class":1048},[934,2436,2437],{"class":1048}," hermes-dashboard\n",[934,2439,2440,2442,2444,2447],{"class":936,"line":1071},[934,2441,1895],{"class":1044},[934,2443,1898],{"class":1048},[934,2445,2446],{"class":1048}," start",[934,2448,2437],{"class":1048},[934,2450,2451,2453,2455,2457],{"class":936,"line":1078},[934,2452,1895],{"class":1044},[934,2454,1898],{"class":1048},[934,2456,1922],{"class":1048},[934,2458,2437],{"class":1048},[881,2460,2462],{"id":2461},"schritt-6-den-cloudflare-warp-client-auf-dem-desktop-installieren","Schritt 6: Den Cloudflare WARP-Client auf dem Desktop installieren",[533,2464,2465,2474,2477,2484,2491,2498],{},[488,2466,2467,2468,2473],{},"Laden Sie den Cloudflare WARP-Client vom ",[444,2469,2472],{"href":2470,"rel":2471},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fwarp-client\u002Fget-started\u002F",[448],"Cloudflare-Portal"," herunter.",[488,2475,2476],{},"Öffnen und starten Sie den Cloudflare WARP-Client nach der Installation.",[488,2478,2479,2480],{},"Melden Sie sich an, wenn Sie dazu aufgefordert werden.\n",[433,2481],{"alt":2482,"src":2483},"Anmeldeaufforderung des Cloudflare WARP-Clients auf dem Desktop-Computer","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-login-prompt.webp",[488,2485,2486,2487],{},"Nach erfolgreicher Anmeldung wird eine Seite mit der Meldung 'Success' (Erfolg) angezeigt.\n",[433,2488],{"alt":2489,"src":2490},"Authentifizierungserfolg-Webseite nach der Anmeldung bei Cloudflare Zero Trust auf dem Desktop","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-login-success.webp",[488,2492,2493,2494],{},"Der WARP-Client sollte nun anzeigen, dass er mit Ihrem Zero Trust-Team verbunden ist.\n",[433,2495],{"alt":2496,"src":2497},"Desktop-Cloudflare WARP-Client bestätigt aktive Verbindung zum privaten Zero Trust-Netzwerk","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-warp-desktop-client-connected.webp",[488,2499,2500,2501,2504,2505],{},"Navigieren Sie zu Ihrem Webbrowser und geben Sie Ihre private IP-Adresse ein (z. B. ",[495,2502,2503],{},"100.96.0.3","). Das Hermes Web Dashboard sollte erfolgreich geladen werden.\n",[433,2506],{"alt":2507,"src":2508},"Zugriff auf das private Hermes Agent Web Dashboard im Browser auf dem Desktop","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fhermes-agent-dashboard-desktop-view.webp",[2510,2511,2512],"blockquote",{},[430,2513,2514,2517,2518,2523],{},[441,2515,2516],{},"Profi-Tipp für macOS-Nutzer:"," Wenn Sie den WARP-Client verwenden, um auf mehrere Cloudflare-Konten zuzugreifen, sehen Sie sich unsere Kurzanleitung an: ",[441,2519,2520],{},[444,2521,2522],{"href":399},"Wechseln zwischen mehreren Cloudflare WARP-Profilen auf Mac",", um einen nahtlosen Kontowechsel zu ermöglichen.",[881,2525,2527],{"id":2526},"schritt-7-den-cloudflare-warp-client-auf-ios-geräten-installieren","Schritt 7: Den Cloudflare WARP-Client auf iOS-Geräten installieren",[533,2529,2530,2537,2545,2553,2561],{},[488,2531,2532,2533,2536],{},"Installieren Sie ",[441,2534,2535],{},"Cloudflare One"," aus dem App Store.",[488,2538,2539,2540],{},"Öffnen Sie die Cloudflare One-App und geben Sie Ihren Teamnamen ein, wenn Sie dazu aufgefordert werden.\n",[433,2541],{"alt":2542,"src":2543,"width":2544},"Eingeben des Cloudflare Zero Trust-Teamnamens in der Cloudflare One-App auf iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-team-name-prompt.webp",239,[488,2546,2547,2548],{},"Melden Sie sich mit derselben E-Mail-Adresse an, die in der obigen Richtlinienregel konfiguriert wurde.\n",[433,2549],{"alt":2550,"src":2551,"width":2552},"E-Mail-Authentifizierungsaufforderung für Cloudflare Zero Trust auf iOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-email-login.webp",229,[488,2554,2555,2556],{},"Sobald eine Verbindung hergestellt ist, sollte es folgendermaßen aussehen:\n",[433,2557],{"alt":2558,"src":2559,"width":2560},"Cloudflare One-App zeigt den Verbindungsstatus auf dem iOS-Mobilgerät an","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fcloudflare-one-ios-client-connected.webp",322,[488,2562,2563,2564,2566,2567],{},"Navigieren Sie zu Ihrem Webbrowser und geben die private IP-Adresse ",[495,2565,2503],{}," ein, um auf Ihrem Mobilgerät auf das Hermes Web Dashboard zuzugreifen.\n",[433,2568],{"alt":2569,"src":2570,"width":2571},"Zugriff auf die Benutzeroberfläche des Hermes Agent Web Dashboards im mobilen Browser","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002Fhermes-agent-dashboard-mobile-view.webp",345,[474,2573,2575],{"id":2574},"fazit","Fazit",[430,2577,2578,2579,2581,2582,2585],{},"Da ",[441,2580,1725],{}," die Identitätsrichtlinien verwaltet und der ",[441,2583,2584],{},"WARP","-Client den Datenverkehr über einen verschlüsselten Tunnel weiterleitet, ist Ihr Hermes Agent weltweit sicher von Ihren Geräten aus erreichbar. Dieses Setup bildet eine sichere, robuste Grundlage für den Aufbau und den Zugriff auf eine vollständig dezentrale, private KI-Infrastruktur.",[1643,2587,2588],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":425,"searchDepth":1064,"depth":1071,"links":2590},[2591,2594,2606],{"id":1739,"depth":1064,"text":1740,"children":2592},[2593],{"id":1758,"depth":1071,"text":1759},{"id":1770,"depth":1064,"text":1771,"children":2595},[2596,2597,2598,2599,2600,2604,2605],{"id":1774,"depth":1071,"text":1775},{"id":1828,"depth":1071,"text":1829},{"id":1969,"depth":1071,"text":1970},{"id":2006,"depth":1071,"text":2007},{"id":2148,"depth":1071,"text":2149,"children":2601},[2602,2603],{"id":2164,"depth":1078,"text":2165},{"id":2296,"depth":1078,"text":2297},{"id":2461,"depth":1071,"text":2462},{"id":2526,"depth":1071,"text":2527},{"id":2574,"depth":1064,"text":2575},[1663,2608],"security","2026-07-09","Erfahren Sie, wie Sie mit Cloudflare WARP und Zero Trust weltweit sicher auf Ihren Hermes Agent zugreifen können, ohne eingehende Firewall-Ports zu öffnen.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002FDE-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp","Sichere Freigabe des Hermes Agent in einem privaten Netzwerk mittels Cloudflare Zero Trust und WARP-Tunnel",{"schemaOrg":2614,"robots":1697,"sitemap":2645},[2615],{"@type":1676,"headline":1710,"description":2610,"name":1710,"image":2611,"step":2616},[2617,2621,2625,2629,2633,2637,2641],{"@type":1679,"name":2618,"text":2619,"url":2620,"image":1793},"Cloudflare Zero Trust einrichten","Melden Sie sich bei Ihrem Cloudflare Dashboard an. Klicken Sie im linken Menü auf 'Zero Trust'. Wenn dies Ihr erstes Mal ist, werden Sie aufgefordert, einen Tarif zu wählen (der kostenlose Tarif reicht für dieses Setup völlig aus) und Ihr Team zu ben","#step-1",{"@type":1679,"name":2622,"text":2623,"url":2624,"image":1966},"Den Cloudflare WARP-Client auf dem VPS einrichten","Führen Sie sudo apt update und sudo apt install cloudflare-warp im Terminal auf Ihrem VPS aus. Führen Sie warp-cli registration new \u003CTEAM-NAME> im Terminal auf Ihrem VPS aus, was eine URL ausgibt. Kopieren Sie die ausgegebene URL, die wie https:\u002F\u002F\u003Cte","#step-2",{"@type":1679,"name":2626,"text":2627,"url":2628,"image":1979},"Datenverkehr-Routing einrichten","Klicken Sie im Geräte-Dashboard auf das Profil Ihres VPS. Scrollen Sie nach unten zum Abschnitt 'Split Tunnels'. Klicken Sie auf die Schaltfläche 'Manage' (Verwalten) und konfigurieren Sie die Einstellungen wie unten gezeigt. Ersetzen Sie die IP-Adre","#step-3",{"@type":1679,"name":2630,"text":2631,"url":2632},"Firewall auf dem VPS konfigurieren","Aktivieren Sie die Firewall so, dass nur das Subnetz '100.96.0.0\u002F12' zugelassen wird und alle anderen öffentlichen eingehenden Zugriffe blockiert werden. bash Lassen Sie Loopback-Datenverkehr zu, um lokale Dienste nicht zu unterbrechen: bash Laden Si","#step-4",{"@type":1679,"name":2634,"text":2635,"url":2636},"Den Hermes Agent im privaten Netzwerk freigeben","Wir werden das Hermes Agent Web Dashboard für unser privates Netzwerk freigeben und den Standard-Authentifizierungsanbieter Nous Research verwenden.","#step-5",{"@type":1679,"name":2638,"text":2639,"url":2640,"image":2483},"Den Cloudflare WARP-Client auf dem Desktop installieren","Laden Sie den Cloudflare WARP-Client vom Cloudflare-Portal herunter. Öffnen und starten Sie den Cloudflare WARP-Client nach der Installation. Melden Sie sich an, wenn Sie dazu aufgefordert werden. Nach erfolgreicher Anmeldung wird eine Seite mit der","#step-6",{"@type":1679,"name":2642,"text":2643,"url":2644,"image":2543},"Den Cloudflare WARP-Client auf iOS-Geräten installieren","Installieren Sie Cloudflare One aus dem App Store. Öffnen Sie die Cloudflare One-App und geben Sie Ihren Teamnamen ein, wenn Sie dazu aufgefordert werden. Melden Sie sich mit derselben E-Mail-Adresse an, die in der obigen Richtlinienregel konfigurier","#step-7",{"lastmod":2646},"2026-09-28",{"title":2648,"description":2610,"ogTitle":1710,"ogDescription":2610,"twitterTitle":1710,"twitterDescription":2610},"Sicherer Hermes Agent-Zugriff mit Cloudflare Zero Trust","de\u002Farticle\u002Fexposing-hermes-agent-to-private-network-using-cloudflare-warp",[1722,2651,1718,2652,2653],"Zero Trust","Privates Netzwerk","Anleitung","OWyvw7JrzeJL6Ks3SschIQF-JKVNxc0v5dM6KjfvVtE",{"id":2656,"title":2657,"author":425,"body":2658,"category":4089,"date":4091,"description":4092,"extension":1668,"image":4093,"imageAlt":4094,"isPublished":1067,"meta":4095,"minRead":2404,"navigation":1067,"path":27,"seo":4102,"stem":4104,"tags":4105,"updatedAt":1706,"__hash__":4109},"article\u002Fde\u002Farticle\u002Fsync-obsidian-across-devices.md","Obsidian-Vaults auf allen Geräten sicher synchronisieren",{"type":427,"value":2659,"toc":4067},[2660,2663,2668,2677,2686,2703,2708,2716,2720,2725,2739,2755,2758,2762,2766,2773,2778,2782,2787,2844,2852,2884,2888,2895,2901,2908,2970,2973,2990,2997,3009,3013,3017,3028,3033,3044,3066,3071,3085,3090,3096,3101,3116,3119,3124,3127,3132,3136,3141,3154,3158,3172,3182,3186,3191,3194,3205,3238,3242,3249,3391,3425,3431,3452,3463,3468,3472,3483,3554,3558,3564,3600,3731,3738,3744,3750,3756,3759,3765,3771,3785,3796,3803,3809,3816,3945,3951,3956,3959,3964,3967,3971,3977,3982,3988,3999,4009,4013,4024,4029,4035,4038,4041,4064],[430,2661,2662],{},"Obsidian ist eine Anwendung für das Wissensmanagement, die dem Prinzip „Local-First“ (lokal zuerst) folgt. Jede Notiz ist eine Markdown-Datei auf Ihrem Gerät und bleibt vollständig unter Ihrer Kontrolle. Häufig wünscht man sich jedoch denselben Tresor (Vault) auf dem Laptop, dem Smartphone und anderen Geräten oder möchte aus der Ferne über einen Webbrowser darauf zugreifen können.",[433,2664],{"src":2665,"alt":2666,"style":2667},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-multi-device-sync-illustration.webp","Illustration der Obsidian-Vault-Synchronisierung über mehrere Geräte","max-width: 667px; width: 100%; height: auto;",[430,2669,2670,2671,2676],{},"Für Obsidian gibt es eine Reihe von Synchronisationslösungen, die jedoch alle Kompromisse bei der Konfliktbehandlung, der Verschlüsselung oder der Datensouveränität erfordern. ",[444,2672,2675],{"href":2673,"rel":2674},"https:\u002F\u002Fgithub.com\u002Fhjinco\u002Fsynch",[448],"Synch"," ist eine Open-Source-Anwendung, die Ihren Obsidian-Tresor mit Ende-zu-Ende-Verschlüsselung und automatischer Konfliktbehandlung auf einem selbst gehosteten Server synchronisiert.",[430,2678,2679,2680,2685],{},"Obwohl der Local-First-Ansatz von Obsidian in den meisten Fällen perfekt funktioniert, müssen wir gelegentlich aus der Ferne über einen Webbrowser auf unseren Tresor zugreifen. ",[444,2681,2684],{"href":2682,"rel":2683},"https:\u002F\u002Fgithub.com\u002FNystik-gh\u002Fignis",[448],"Ignis"," ist eine Open-Source-Anwendung, mit der Obsidian in einem Webbrowser in einem nahezu nativen Format ausgeführt wird, sodass Sie Ihren Tresor von überall aus lesen und bearbeiten können.",[430,2687,2688,2689,576,2691,2693,2694,2697,2698,2702],{},"In dieser Anleitung werden wir ",[441,2690,2675],{},[441,2692,2684],{}," auf einem ",[441,2695,2696],{},"VPS"," (Virtual Private Server) einrichten und sie sicher in einem privaten Netzwerk von ",[441,2699,2700],{},[444,2701,1725],{"href":363}," hosten, anstatt sie dem offenen Internet auszusetzen.",[433,2704],{"src":2705,"alt":2706,"style":2707},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-sync-cloudflare-zero-trust-architecture.webp","Architekturdiagramm der Obsidian-Synchronisierung mit Cloudflare Zero Trust","max-width: 671px; width: 100%; height: auto;",[463,2709],{"description":2710,"image":2711,"image-alt":2712,"label":2713,"min-read":2714,"title":2715,"to":363},"Erfahren Sie, wie Sie Ihren Hermes-Agenten mithilfe von Cloudflare WARP und Zero Trust weltweit sicher freigeben und darauf zugreifen können, ohne eingehende Firewall-Ports zu öffnen.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FExposing%20Hermes%20Agent%20to%20Private%20Network%20Using%20Cloudflare%20WARP\u002FEN-Exposing-Hermes-Agent-to-Private-Network-Using-Cloudflare-WARP.webp","Sichere Freigabe des Hermes-Agenten für ein privates Netzwerk über einen Cloudflare Zero Trust- und WARP-Tunnel","Ähnliche Anleitung","8","So geben Sie den Hermes-Agenten privat über Cloudflare WARP frei",[474,2717,2719],{"id":2718},"sichere-obsidian-tresor-synchronisation-mit-synch","Sichere Obsidian-Tresor-Synchronisation mit Synch",[430,2721,2722,2724],{},[441,2723,2675],{}," bietet die folgenden Funktionen:",[485,2726,2727,2730,2733,2736],{},[488,2728,2729],{},"Synchronisiert Ihren Tresor, sobald Änderungen erkannt werden",[488,2731,2732],{},"Verschlüsselt Tresordaten vor dem Hochladen",[488,2734,2735],{},"Ermöglicht die Wiederherstellung aus dem Versionsverlauf",[488,2737,2738],{},"Beinhaltet automatische Konfliktbehandlung",[430,2740,2741,2743,2744,2747,2748,2751,2752,2754],{},[441,2742,2675],{}," generiert auf Ihrem Gerät einen zufälligen 32-Byte-",[441,2745,2746],{},"Tresorschlüssel"," (Vault Key), der zur Verschlüsselung Ihrer Tresordaten verwendet wird. Wenn Sie einen Remote-Tresor erstellen, wählen Sie ein ",[441,2749,2750],{},"Tresor-Passwort","; dieses Passwort wird verwendet, um den ",[441,2753,2746],{}," zu schützen, sodass der Schlüssel sicher auf dem Server gespeichert und auf anderen Geräten entsperrt werden kann.",[430,2756,2757],{},"Beachten Sie, dass die Konfliktbehandlung auf Ihren Client-Geräten und nicht auf dem Server erfolgt. Wenn zwei Geräte dieselbe Notiz gleichzeitig bearbeiten, behält der Server die Version, die zuerst eintrifft, und markiert das andere Gerät als veraltet. Das veraltete Gerät führt dann automatisch die neuere Version mit seinen lokalen Änderungen zusammen, bevor es die endgültige zusammengeführte Notiz hochlädt.",[881,2759,2761],{"id":2760},"einrichten-von-synch-auf-ihrem-vps","Einrichten von Synch auf Ihrem VPS",[2162,2763,2765],{"id":2764},"erstellen-sie-einen-domainnamen","Erstellen Sie einen Domainnamen",[430,2767,2768,2769,2772],{},"Erstellen Sie einen A-Eintrag (A-Record) in Cloudflare und stellen Sie den Proxy-Status auf ",[441,2770,2771],{},"Nur DNS"," (wodurch das Cloudflare CDN umgangen wird).",[433,2774],{"src":2775,"alt":2776,"style":2777},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fcloudflare-dns-a-record-synch-server.webp","Konfiguration eines DNS-A-Eintrags für den Synch-Server in Cloudflare","max-width: 538px; width: 100%; height: auto;",[2162,2779,2781],{"id":2780},"installieren-sie-synch-mit-docker-auf-ubuntu","Installieren Sie Synch mit Docker auf Ubuntu",[2783,2784,2786],"h5",{"id":2785},"klonen-sie-das-repository","Klonen Sie das Repository",[926,2788,2790],{"className":1035,"code":2789,"language":1037,"meta":425,"style":425},"git clone https:\u002F\u002Fgithub.com\u002Fhjinco\u002Fsynch.git       \n        \n# Navigieren Sie zum API-Ordner\ncd synch\u002Fapps\u002Fapi\n        \n# Kopieren Sie die Beispiel-Umgebungsdatei:\ncp .env.example .env\n",[495,2791,2792,2806,2811,2816,2824,2828,2833],{"__ignoreMap":425},[934,2793,2794,2797,2800,2803],{"class":936,"line":937},[934,2795,2796],{"class":1044},"git",[934,2798,2799],{"class":1048}," clone",[934,2801,2802],{"class":1048}," https:\u002F\u002Fgithub.com\u002Fhjinco\u002Fsynch.git",[934,2804,2805],{"class":944},"       \n",[934,2807,2808],{"class":936,"line":1064},[934,2809,2810],{"class":944},"        \n",[934,2812,2813],{"class":936,"line":1071},[934,2814,2815],{"class":1074},"# Navigieren Sie zum API-Ordner\n",[934,2817,2818,2821],{"class":936,"line":1078},[934,2819,2820],{"class":965},"cd",[934,2822,2823],{"class":1048}," synch\u002Fapps\u002Fapi\n",[934,2825,2826],{"class":936,"line":1927},[934,2827,2810],{"class":944},[934,2829,2830],{"class":936,"line":1932},[934,2831,2832],{"class":1074},"# Kopieren Sie die Beispiel-Umgebungsdatei:\n",[934,2834,2835,2838,2841],{"class":936,"line":1938},[934,2836,2837],{"class":1044},"cp",[934,2839,2840],{"class":1048}," .env.example",[934,2842,2843],{"class":1048}," .env\n",[2783,2845,2847,2848,2851],{"id":2846},"bearbeiten-sie-die-env-werte","Bearbeiten Sie die ",[495,2849,2850],{},".env","-Werte",[485,2853,2854,2860,2878],{},[488,2855,2856,2859],{},[495,2857,2858],{},"PUBLIC_URL=synch.pafor.me",": Geben Sie den öffentlichen Domainnamen Ihres Synch-Servers ein (den im vorherigen Schritt erstellten Domainnamen).",[488,2861,2862,576,2865,2868,2869,2873,2874,2877],{},[495,2863,2864],{},"BETTER_AUTH_SECRET",[495,2866,2867],{},"SYNC_TOKEN_SECRET",": Generieren Sie sichere Schlüssel mit diesem ",[444,2870,2872],{"href":2871},"\u002Fde\u002Ftools\u002Fsecret-key-hex","Online-Tool für geheime Schlüssel"," oder indem Sie ",[495,2875,2876],{},"openssl rand -hex 32"," zweimal in Ihrem Terminal ausführen.",[488,2879,2880,2883],{},[495,2881,2882],{},"AUTH_ALLOWED_EMAILS",": Eine durch Kommas getrennte Liste der E-Mail-Adressen, die sich registrieren und Konten erstellen dürfen.",[2783,2885,2887],{"id":2886},"fügen-sie-die-domain-zum-caddyfile-hinzu","Fügen Sie die Domain zum Caddyfile hinzu",[430,2889,2890,2891,552],{},"Details dazu, wie das Cloudflare DNS-Modul in Caddy integriert und in einem Container gestartet wird, finden Sie in unserem ",[444,2892,2894],{"href":2893},"\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues#_4-enable-https-with-caddy","Artikel zum Selbst-Hosten von Buzz",[463,2896],{"description":2897,"image":2898,"image-alt":2899,"label":2900,"min-read":469,"title":455,"to":2893},"Erfahren Sie, wie Sie Caddy so konfigurieren, dass SSL\u002FTLS-Zertifikate mithilfe von Cloudflare DNS-Herausforderungen in Docker-Containern automatisch bereitgestellt werden.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002FEN-Self-Hosting-Buzz-As-The-Workspace-Where-AI-Agents-Become-Colleagues.webp","Konfiguration von Caddy mit Cloudflare DNS-API-Token für die automatisierte SSL\u002FTLS-Zertifikatserstellung in einem selbst gehosteten Arbeitsbereich","Anleitung zum Selbst-Hosten",[430,2902,2903,2904,2907],{},"Fügen Sie die Anweisung ",[495,2905,2906],{},"SYNCH_DOMAIN"," in Ihr Caddyfile ein und verweisen Sie auf Port 8787 (der vom Synch-Container verwendete Port):",[926,2909,2913],{"className":2910,"code":2911,"language":2912,"meta":425,"style":425},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}\n}\n\n{$SYNCH_DOMAIN} {\n  encode zstd gzip\n  reverse_proxy host.docker.internal:8787\n}\n","json",[495,2914,2915,2920,2928,2932,2936,2950,2955,2966],{"__ignoreMap":425},[934,2916,2917],{"class":936,"line":937},[934,2918,2919],{"class":948},"{\n",[934,2921,2922,2925],{"class":936,"line":1064},[934,2923,2924],{"class":944},"  acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN",[934,2926,2927],{"class":948},"}\n",[934,2929,2930],{"class":936,"line":1071},[934,2931,2927],{"class":944},[934,2933,2934],{"class":936,"line":1078},[934,2935,1068],{"emptyLinePlaceholder":1067},[934,2937,2938,2941,2944,2947],{"class":936,"line":1927},[934,2939,2940],{"class":948},"{",[934,2942,2943],{"class":944},"$SYNCH_DOMAIN",[934,2945,2946],{"class":948},"}",[934,2948,2949],{"class":948}," {\n",[934,2951,2952],{"class":936,"line":1932},[934,2953,2954],{"class":944},"  encode zstd gzip\n",[934,2956,2957,2960,2962],{"class":936,"line":1938},[934,2958,2959],{"class":944},"  reverse_proxy host.docker.internal",[934,2961,891],{"class":948},[934,2963,2965],{"class":2964},"sbssI","8787\n",[934,2967,2968],{"class":936,"line":2275},[934,2969,2927],{"class":948},[430,2971,2972],{},"Starten Sie den Container:",[926,2974,2976],{"className":1035,"code":2975,"language":1037,"meta":425,"style":425},"docker compose up -d\n",[495,2977,2978],{"__ignoreMap":425},[934,2979,2980,2982,2984,2987],{"class":936,"line":937},[934,2981,1178],{"class":1044},[934,2983,1181],{"class":1048},[934,2985,2986],{"class":1048}," up",[934,2988,2989],{"class":1048}," -d\n",[430,2991,2992,2993,2996],{},"Führen Sie den folgenden ",[495,2994,2995],{},"curl","-Befehl aus, um die Verfügbarkeit zu prüfen:",[926,2998,3000],{"className":1035,"code":2999,"language":1037,"meta":425,"style":425},"curl https:\u002F\u002Fsynch.pafor.me\u002Fhealth\n",[495,3001,3002],{"__ignoreMap":425},[934,3003,3004,3006],{"class":936,"line":937},[934,3005,2995],{"class":1044},[934,3007,3008],{"class":1048}," https:\u002F\u002Fsynch.pafor.me\u002Fhealth\n",[881,3010,3012],{"id":3011},"verbinden-von-obsidian-mit-ihrem-synch-server","Verbinden von Obsidian mit Ihrem Synch-Server",[2162,3014,3016],{"id":3015},"installieren-sie-das-synch-plugin-in-obsidian","Installieren Sie das Synch-Plugin in Obsidian",[430,3018,3019,3020,3023,3024,3027],{},"Öffnen Sie die Obsidian-Einstellungen, navigieren Sie zu ",[441,3021,3022],{},"Community-Plugins"," und klicken Sie auf die Schaltfläche ",[441,3025,3026],{},"'Durchsuchen'"," ('Browse'):",[433,3029],{"src":3030,"alt":3031,"style":3032},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-community-plugins-browse.webp","Durchsuchen von Community-Plugins in den Obsidian-Einstellungen","max-width: 523px; width: 100%; height: auto;",[430,3034,3035,3036,3039,3040],{},"Suchen Sie nach ",[441,3037,3038],{},"'Synchrun'"," und installieren Sie es:\n",[433,3041],{"src":3042,"alt":3043,"style":2777},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-install-synchrun-plugin.webp","Installation des Synchrun-Plugins in Obsidian",[430,3045,3046,3047,3049,3050,3053,3054,3057,3058,3061,3062,3065],{},"Sobald ",[441,3048,3038],{}," installiert ist, öffnen Sie die Plugin-Einstellungen und aktivieren Sie ",[441,3051,3052],{},"'Einen selbst gehosteten Server verwenden'"," ('Use a self-hosted server'). Geben Sie dann ",[495,3055,3056],{},"https:\u002F\u002Fsynch.pafor.me"," in das Feld ",[441,3059,3060],{},"'Server-URL'"," ein und klicken Sie auf ",[441,3063,3064],{},"'Speichern'"," ('Save').",[433,3067],{"src":3068,"alt":3069,"style":3070},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-synchrun-plugin-settings-self-hosted.webp","Konfiguration der selbstgehosteten Server-URL in den Synchrun-Plugin-Einstellungen","max-width: 525px; width: 100%; height: auto;",[430,3072,3073,3074,3077,3078,3081,3082,3084],{},"Klicken Sie auf die Schaltfläche ",[441,3075,3076],{},"'Auf diesem Gerät anmelden'"," ('Sign in on this device') unter ",[441,3079,3080],{},"'Konto'"," ('Account'). Registrieren Sie sich als Nächstes für ein Konto mit der E-Mail-Adresse, die Sie in Ihrer Liste ",[495,3083,2882],{}," angegeben haben; Sie werden dann auf die folgende Autorisierungsseite weitergeleitet:",[433,3086],{"src":3087,"alt":3088,"style":3089},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynchrun-account-authorization-page.webp","Konto-Autorisierungsseite für Synchrun","max-width: 494px; width: 100%; height: auto;",[430,3091,3073,3092,3095],{},[441,3093,3094],{},"'Obsidian-Anmeldung zulassen'"," ('Allow Obsidian sign-in'):",[433,3097],{"src":3098,"alt":3099,"style":3100},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynchrun-allow-obsidian-signin.webp","Obsidian-Anmeldung für Synch zulassen","max-width: 498px; width: 100%; height: auto;",[430,3102,3073,3103,3106,3107,3110,3111],{},[441,3104,3105],{},"'Zurück zu Obsidian'"," ('Return to Obsidian') und klicken Sie dann auf ",[441,3108,3109],{},"'Tresor erstellen'"," ('Create vault'):\n",[433,3112],{"src":3113,"alt":3114,"style":3115},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-synchrun-create-remote-vault.webp","Erstellen eines neuen Remote-Vaults in Synchrun","max-width: 496px; width: 100%; height: auto;",[430,3117,3118],{},"Geben Sie einen Namen und ein sicheres Passwort ein, um Ihren Remote-Tresor zu erstellen.",[433,3120],{"src":3121,"alt":3122,"style":3123},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-synchrun-vault-password-setup.webp","Einrichten eines sicheren Passworts für den Obsidian-Remote-Vault","max-width: 500px; width: 100%; height: auto;",[430,3125,3126],{},"Der Synchronisationsprozess beginnt sofort und kann je nach Größe Ihres Tresors einige Zeit in Anspruch nehmen. Nach Abschluss wird Ihre gesamte Speicherplatznutzung angezeigt.",[433,3128],{"src":3129,"alt":3130,"style":3131},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-synchrun-sync-completed-storage.webp","Abgeschlossene Synchrun-Synchronisierung mit Anzeige des belegten Speichers","max-width: 508px; width: 100%; height: auto;",[474,3133,3135],{"id":3134},"browserbasierter-obsidian-zugriff-mit-ignis","Browserbasierter Obsidian-Zugriff mit Ignis",[430,3137,3138,3140],{},[441,3139,2684],{}," ersetzt die Electron-APIs von Obsidian durch Web-APIs, wodurch der JavaScript-Code von Obsidian direkt in einem Standard-Webbrowser ausgeführt werden kann. Alle Ihre Markdown-Dateien und Anhänge werden direkt im Dateisystem des Host-Servers gespeichert.",[430,3142,3143,3144,576,3149,552],{},"Es gibt jedoch einige Einschränkungen im Vergleich zur eigenständigen Obsidian-Desktop-Anwendung. Bestimmte Funktionen oder Plugins, die Electron- oder Node.js-APIs erfordern – für die es in einer Browserumgebung keine direkte Entsprechung gibt –, funktionieren nicht. Detaillierte Kompatibilitätslisten finden Sie in den Ignis-Handbüchern zu ",[444,3145,3148],{"href":3146,"rel":3147},"https:\u002F\u002Fignis.thiefling.com\u002Fdocs\u002Fusing\u002Flimitations\u002F",[448],"Einschränkungen",[444,3150,3153],{"href":3151,"rel":3152},"https:\u002F\u002Fignis.thiefling.com\u002Fdocs\u002Fusing\u002Fplugin-compatibility\u002F",[448],"Plugin-Kompatibilität",[881,3155,3157],{"id":3156},"ignis-einrichtung","Ignis-Einrichtung",[430,3159,3160,3161,3163,3164,3167,3168,3171],{},"Wir werden ",[441,3162,2684],{}," auf unserem VPS mithilfe von Docker installieren und es im lokalen Ordner ",[495,3165,3166],{},".\u002Fvaults"," einbinden. Dieses Tresor-Verzeichnis wird mithilfe der ",[441,3169,3170],{},"Synch CLI"," synchronisiert, um Notiz-Updates aus dem zuvor eingerichteten Remote-Tresor abzurufen.",[430,3173,2578,3174,3176,3177,3181],{},[441,3175,2684],{}," über keine integrierte Authentifizierung verfügt, muss es hinter einem privaten Netzwerk von ",[441,3178,3179],{},[444,3180,1725],{"href":363}," gesichert werden.",[2162,3183,3185],{"id":3184},"dns-eintrag-erstellen","DNS-Eintrag erstellen",[433,3187],{"src":3188,"alt":3189,"style":3190},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fcloudflare-dns-a-record-ignis.webp","Konfiguration eines DNS-A-Eintrags für den Ignis-Webclient in Cloudflare","max-width: 552px; width: 100%; height: auto;",[2162,3192,2887],{"id":3193},"fügen-sie-die-domain-zum-caddyfile-hinzu-1",[430,3195,3196,3197,3200,3201,3204],{},"Fügen Sie ",[495,3198,3199],{},"obsidian.pafor.me"," auf dieselbe Weise wie ",[495,3202,3203],{},"synch.pafor.me"," zu Ihrem Caddyfile hinzu:",[926,3206,3208],{"className":2910,"code":3207,"language":2912,"meta":425,"style":425},"{$OBSIDIAN_DOMAIN} {\n  encode zstd gzip\n  reverse_proxy host.docker.internal:9898\n}\n",[495,3209,3210,3221,3225,3234],{"__ignoreMap":425},[934,3211,3212,3214,3217,3219],{"class":936,"line":937},[934,3213,2940],{"class":948},[934,3215,3216],{"class":944},"$OBSIDIAN_DOMAIN",[934,3218,2946],{"class":948},[934,3220,2949],{"class":948},[934,3222,3223],{"class":936,"line":1064},[934,3224,2954],{"class":944},[934,3226,3227,3229,3231],{"class":936,"line":1071},[934,3228,2959],{"class":944},[934,3230,891],{"class":948},[934,3232,3233],{"class":2964},"9898\n",[934,3235,3236],{"class":936,"line":1078},[934,3237,2927],{"class":948},[2162,3239,3241],{"id":3240},"starten-sie-ignis-mit-docker","Starten Sie Ignis mit Docker",[430,3243,3244,3245,3248],{},"Speichern Sie die folgende docker compose yml als ",[495,3246,3247],{},"ignis-docker-compose.yml"," auf dem VPS:",[926,3250,3252],{"className":1346,"code":3251,"language":1348,"meta":425,"style":425},"services:\n  ignis:\n    image: nobbe\u002Fignis:latest\n    ports:\n      - \"9898:8080\"\n    environment:\n      # Passen Sie diese an Ihren Host-Benutzer an (Befehl ausführen: id)\n      - PUID=1000\n      - PGID=1000\n      - WS_ORIGINS=https:\u002F\u002Fobsidian.pafor.me\n    volumes:\n      - .\u002Fvaults:\u002Fvaults\n      - .\u002Fdata:\u002Fapp\u002Fdata\n      - obsidian-app:\u002Fapp\u002Fobsidian-app\n    restart: unless-stopped\n\nvolumes:\n  obsidian-app:\n",[495,3253,3254,3261,3268,3278,3285,3298,3305,3310,3317,3324,3331,3338,3345,3352,3359,3370,3375,3383],{"__ignoreMap":425},[934,3255,3256,3259],{"class":936,"line":937},[934,3257,3258],{"class":1358},"services",[934,3260,1372],{"class":948},[934,3262,3263,3266],{"class":936,"line":1064},[934,3264,3265],{"class":1358},"  ignis",[934,3267,1372],{"class":948},[934,3269,3270,3273,3275],{"class":936,"line":1071},[934,3271,3272],{"class":1358},"    image",[934,3274,891],{"class":948},[934,3276,3277],{"class":1048}," nobbe\u002Fignis:latest\n",[934,3279,3280,3283],{"class":936,"line":1078},[934,3281,3282],{"class":1358},"    ports",[934,3284,1372],{"class":948},[934,3286,3287,3290,3293,3296],{"class":936,"line":1927},[934,3288,3289],{"class":948},"      -",[934,3291,3292],{"class":948}," \"",[934,3294,3295],{"class":1048},"9898:8080",[934,3297,1959],{"class":948},[934,3299,3300,3303],{"class":936,"line":1932},[934,3301,3302],{"class":1358},"    environment",[934,3304,1372],{"class":948},[934,3306,3307],{"class":936,"line":1938},[934,3308,3309],{"class":1074},"      # Passen Sie diese an Ihren Host-Benutzer an (Befehl ausführen: id)\n",[934,3311,3312,3314],{"class":936,"line":2275},[934,3313,3289],{"class":948},[934,3315,3316],{"class":1048}," PUID=1000\n",[934,3318,3319,3321],{"class":936,"line":2286},[934,3320,3289],{"class":948},[934,3322,3323],{"class":1048}," PGID=1000\n",[934,3325,3326,3328],{"class":936,"line":1699},[934,3327,3289],{"class":948},[934,3329,3330],{"class":1048}," WS_ORIGINS=https:\u002F\u002Fobsidian.pafor.me\n",[934,3332,3333,3336],{"class":936,"line":2387},[934,3334,3335],{"class":1358},"    volumes",[934,3337,1372],{"class":948},[934,3339,3340,3342],{"class":936,"line":2393},[934,3341,3289],{"class":948},[934,3343,3344],{"class":1048}," .\u002Fvaults:\u002Fvaults\n",[934,3346,3347,3349],{"class":936,"line":2398},[934,3348,3289],{"class":948},[934,3350,3351],{"class":1048}," .\u002Fdata:\u002Fapp\u002Fdata\n",[934,3353,3354,3356],{"class":936,"line":2404},[934,3355,3289],{"class":948},[934,3357,3358],{"class":1048}," obsidian-app:\u002Fapp\u002Fobsidian-app\n",[934,3360,3362,3365,3367],{"class":936,"line":3361},15,[934,3363,3364],{"class":1358},"    restart",[934,3366,891],{"class":948},[934,3368,3369],{"class":1048}," unless-stopped\n",[934,3371,3373],{"class":936,"line":3372},16,[934,3374,1068],{"emptyLinePlaceholder":1067},[934,3376,3378,3381],{"class":936,"line":3377},17,[934,3379,3380],{"class":1358},"volumes",[934,3382,1372],{"class":948},[934,3384,3386,3389],{"class":936,"line":3385},18,[934,3387,3388],{"class":1358},"  obsidian-app",[934,3390,1372],{"class":948},[485,3392,3393,3404,3418],{},[488,3394,3395,3396,3399,3400,3403],{},"Verwenden Sie Port ",[495,3397,3398],{},"9898"," auf dem Host, da ",[495,3401,3402],{},"8080"," häufig von anderen Diensten verwendet wird.",[488,3405,3406,3407,3410,3411,576,3414,3417],{},"Führen Sie den Befehl ",[495,3408,3409],{},"id"," auf Ihrem VPS aus, um die ",[495,3412,3413],{},"UID",[495,3415,3416],{},"GID"," Ihres Host-Benutzers zu überprüfen, um korrekte Dateisystemberechtigungen sicherzustellen.",[488,3419,3420,3421,3424],{},"Stellen Sie ",[495,3422,3423],{},"WS_ORIGINS"," so ein, dass nur WebSocket-Verbindungen zulässig sind, die von Ihrem spezifischen Domainnamen ausgehen.",[430,3426,3427,3428,3430],{},"Starten Sie den ",[441,3429,2684],{},"-Docker:",[926,3432,3434],{"className":1035,"code":3433,"language":1037,"meta":425,"style":425},"docker compose -f ignis-docker-compose.yml up -d\n",[495,3435,3436],{"__ignoreMap":425},[934,3437,3438,3440,3442,3445,3448,3450],{"class":936,"line":937},[934,3439,1178],{"class":1044},[934,3441,1181],{"class":1048},[934,3443,3444],{"class":1048}," -f",[934,3446,3447],{"class":1048}," ignis-docker-compose.yml",[934,3449,2986],{"class":1048},[934,3451,2989],{"class":1048},[430,3453,3454,3455,3458,3459,3462],{},"Wenn Sie in einem Webbrowser zu Ihrer Domain navigieren, wird der ",[441,3456,3457],{},"'Vault Manager'"," angezeigt. Er ist leer, da noch keine Tresore konfiguriert sind. Wir werden im nächsten Abschnitt die ",[441,3460,3461],{},"'Synch CLI'"," einrichten, um Inhalte aus unserem Remote-Tresor zu synchronisieren.",[433,3464],{"src":3465,"alt":3466,"style":3467},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-vault-manager-empty.webp","Leere Vault-Manager-Oberfläche im Ignis-Webclient","max-width: 466px; width: 100%; height: auto;",[2162,3469,3471],{"id":3470},"firewall-problem","Firewall-Problem",[430,3473,3474,3475,3478,3479,3482],{},"Standardmäßig fügt Docker automatisch seine eigenen DNAT- und FORWARD-Regeln ein, die den öffentlichen Datenverkehr direkt an aktive Container weiterleiten. Dies umgeht die standardmäßige Ubuntu UFW\u002Fiptables ",[495,3476,3477],{},"INPUT","-Kette. Um den externen öffentlichen Datenverkehr zu blockieren und die Container privat zu halten, fügen Sie die folgenden Regeln manuell zu ",[495,3480,3481],{},"iptables"," hinzu:",[926,3484,3486],{"className":1035,"code":3485,"language":1037,"meta":425,"style":425},"# Blockieren Sie den gesamten externen öffentlichen Datenverkehr\nsudo iptables -I DOCKER-USER -i ext_if -j DROP \n\n# Lassen Sie Datenverkehr nur von der privaten IP Ihres Cloudflare WARP-Clients zu\nsudo iptables -I DOCKER-USER -i ext_if -s 100.96.0.10 -j ACCEPT\n",[495,3487,3488,3493,3520,3524,3529],{"__ignoreMap":425},[934,3489,3490],{"class":936,"line":937},[934,3491,3492],{"class":1074},"# Blockieren Sie den gesamten externen öffentlichen Datenverkehr\n",[934,3494,3495,3497,3500,3503,3506,3509,3512,3515,3518],{"class":936,"line":1064},[934,3496,1895],{"class":1044},[934,3498,3499],{"class":1048}," iptables",[934,3501,3502],{"class":1048}," -I",[934,3504,3505],{"class":1048}," DOCKER-USER",[934,3507,3508],{"class":1048}," -i",[934,3510,3511],{"class":1048}," ext_if",[934,3513,3514],{"class":1048}," -j",[934,3516,3517],{"class":1048}," DROP",[934,3519,2028],{"class":944},[934,3521,3522],{"class":936,"line":1071},[934,3523,1068],{"emptyLinePlaceholder":1067},[934,3525,3526],{"class":936,"line":1078},[934,3527,3528],{"class":1074},"# Lassen Sie Datenverkehr nur von der privaten IP Ihres Cloudflare WARP-Clients zu\n",[934,3530,3531,3533,3535,3537,3539,3541,3543,3546,3549,3551],{"class":936,"line":1927},[934,3532,1895],{"class":1044},[934,3534,3499],{"class":1048},[934,3536,3502],{"class":1048},[934,3538,3505],{"class":1048},[934,3540,3508],{"class":1048},[934,3542,3511],{"class":1048},[934,3544,3545],{"class":1048}," -s",[934,3547,3548],{"class":2964}," 100.96.0.10",[934,3550,3514],{"class":1048},[934,3552,3553],{"class":1048}," ACCEPT\n",[2162,3555,3557],{"id":3556},"konfiguration-der-synch-cli","Konfiguration der Synch CLI",[430,3559,3560,3561,3563],{},"Die ",[441,3562,3170],{}," ist ein Headless-Tool, mit dem ein Obsidian-Tresorverzeichnis direkt auf Remote-Servern synchronisiert werden kann, ohne dass die vollständige Desktop-Anwendung installiert sein muss.",[430,3565,3566,3567,3569,3570,3573,3574,3577,3578,3581,3582,744,3585,576,3588,3591,3592,3595,3596,3599],{},"Erstellen Sie die ",[441,3568,3170],{}," aus Ihrem geklonten ",[495,3571,3572],{},"synch","-Repository. Das Erstellen erfordert ",[441,3575,3576],{},"Node.js >= 22.5"," (da die CLI von ",[495,3579,3580],{},"node:sqlite"," und globalen Browser-APIs wie ",[495,3583,3584],{},"fetch",[495,3586,3587],{},"WebSocket",[495,3589,3590],{},"WebCrypto"," abhängt) und ",[441,3593,3594],{},"pnpm"," (da das Repository als pnpm-Workspace mit der Version ",[495,3597,3598],{},"10.33.0"," strukturiert ist):",[926,3601,3603],{"className":1035,"code":3602,"language":1037,"meta":425,"style":425},"# Versionen prüfen\nnode --version   # muss >= 22.5 sein\npnpm --version\n\n# Im Root-Verzeichnis des Repositories\npnpm install\n\n# CLI-Bundle erstellen\npnpm -C apps\u002Fcli build\n\n# Nach einem erfolgreichen Build haben Sie `apps\u002Fcli\u002Fdist\u002Fsynch.js`. Machen Sie es ausführbar und fügen Sie es Ihrem PATH hinzu\nchmod +x apps\u002Fcli\u002Fdist\u002Fsynch.js\nln -sf \"$PWD\u002Fapps\u002Fcli\u002Fdist\u002Fsynch.js\" \"$HOME\u002F.local\u002Fbin\u002Fsynch\"\n\n# Überprüfung\nsynch --help\n",[495,3604,3605,3610,3621,3628,3632,3637,3644,3648,3653,3666,3670,3675,3686,3715,3719,3724],{"__ignoreMap":425},[934,3606,3607],{"class":936,"line":937},[934,3608,3609],{"class":1074},"# Versionen prüfen\n",[934,3611,3612,3615,3618],{"class":936,"line":1064},[934,3613,3614],{"class":1044},"node",[934,3616,3617],{"class":1048}," --version",[934,3619,3620],{"class":1074},"   # muss >= 22.5 sein\n",[934,3622,3623,3625],{"class":936,"line":1071},[934,3624,3594],{"class":1044},[934,3626,3627],{"class":1048}," --version\n",[934,3629,3630],{"class":936,"line":1078},[934,3631,1068],{"emptyLinePlaceholder":1067},[934,3633,3634],{"class":936,"line":1927},[934,3635,3636],{"class":1074},"# Im Root-Verzeichnis des Repositories\n",[934,3638,3639,3641],{"class":936,"line":1932},[934,3640,3594],{"class":1044},[934,3642,3643],{"class":1048}," install\n",[934,3645,3646],{"class":936,"line":1938},[934,3647,1068],{"emptyLinePlaceholder":1067},[934,3649,3650],{"class":936,"line":2275},[934,3651,3652],{"class":1074},"# CLI-Bundle erstellen\n",[934,3654,3655,3657,3660,3663],{"class":936,"line":2286},[934,3656,3594],{"class":1044},[934,3658,3659],{"class":1048}," -C",[934,3661,3662],{"class":1048}," apps\u002Fcli",[934,3664,3665],{"class":1048}," build\n",[934,3667,3668],{"class":936,"line":1699},[934,3669,1068],{"emptyLinePlaceholder":1067},[934,3671,3672],{"class":936,"line":2387},[934,3673,3674],{"class":1074},"# Nach einem erfolgreichen Build haben Sie `apps\u002Fcli\u002Fdist\u002Fsynch.js`. Machen Sie es ausführbar und fügen Sie es Ihrem PATH hinzu\n",[934,3676,3677,3680,3683],{"class":936,"line":2393},[934,3678,3679],{"class":1044},"chmod",[934,3681,3682],{"class":1048}," +x",[934,3684,3685],{"class":1048}," apps\u002Fcli\u002Fdist\u002Fsynch.js\n",[934,3687,3688,3691,3694,3696,3699,3702,3705,3707,3710,3713],{"class":936,"line":2398},[934,3689,3690],{"class":1044},"ln",[934,3692,3693],{"class":1048}," -sf",[934,3695,3292],{"class":948},[934,3697,3698],{"class":944},"$PWD",[934,3700,3701],{"class":1048},"\u002Fapps\u002Fcli\u002Fdist\u002Fsynch.js",[934,3703,3704],{"class":948},"\"",[934,3706,3292],{"class":948},[934,3708,3709],{"class":944},"$HOME",[934,3711,3712],{"class":1048},"\u002F.local\u002Fbin\u002Fsynch",[934,3714,1959],{"class":948},[934,3716,3717],{"class":936,"line":2404},[934,3718,1068],{"emptyLinePlaceholder":1067},[934,3720,3721],{"class":936,"line":3361},[934,3722,3723],{"class":1074},"# Überprüfung\n",[934,3725,3726,3728],{"class":936,"line":3372},[934,3727,3572],{"class":1044},[934,3729,3730],{"class":1048}," --help\n",[430,3732,3733,3734,3737],{},"Da die Synch CLI auf demselben VPS wie Ihr Remote-Tresor von Synch ausgeführt wird, kann sie direkt eine Verbindung zum lokalen API-Server herstellen. Wenn Sie einen anderen Server konfigurieren, führen Sie ",[495,3735,3736],{},"synch login --api-url \u003Cremote-synch-api-url>"," aus, um Ihren Ziel-API-Endpunkt zu definieren.",[430,3739,3740],{},[433,3741],{"alt":3742,"src":3743},"Ausführen von Synch Login mit benutzerdefinierter API-URL im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynch-login-api-url-terminal.webp",[430,3745,1834,3746,3749],{},[495,3747,3748],{},"synch login"," in Ihrem Terminal aus, und Sie erhalten eine Autorisierungs-URL:",[430,3751,3752],{},[433,3753],{"alt":3754,"src":3755},"Terminalausgabe mit der Authentifizierungs-URL für Synch CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynch-login-auth-url-terminal.webp",[430,3757,3758],{},"Melden Sie sich über die Webseite mit derselben E-Mail-Adresse an, die Sie im Obsidian-Desktop-Plugin Synchrun registriert haben.",[430,3760,3761],{},[433,3762],{"alt":3763,"src":3764},"Erfolgreiche Web-Anmeldung für die Synch-CLI-Autorisierung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynch-web-login-success.webp",[430,3766,1834,3767,3770],{},[495,3768,3769],{},"synch vault connect --vault ~\u002Fvaults\u002F\u003Ctresorname> --vault-id asadqe-7b29-4677-fsad-234asdafasd"," aus, um Ihr lokales Tresorverzeichnis auf dem VPS mit dem Remote-Tresor zu verknüpfen.",[430,3772,3773,3774,3777,3778,3781,3782,924],{},"Die Remote-Tresor-ID finden Sie in den Einstellungen des ",[441,3775,3776],{},"Synchrun","-Plugins, indem Sie auf ",[441,3779,3780],{},"'Remote-Tresore verwalten'"," ('Manage remote vaults') klicken. Dadurch wird eine Webseite mit einer Liste Ihrer Remote-Tresore geöffnet, die jeweils durch eine eindeutige GUID identifiziert sind (z. B. ",[495,3783,3784],{},"123e4567-e89b-12d3-a456-426614174000",[430,3786,3787,3792],{},[433,3788],{"src":3789,"alt":3790,"style":3791},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynchrun-manage-remote-vaults.webp","Verwalten von Remote-Vaults im Synchrun-Plugin","max-width: 582px; width: 100%; height: auto;",[433,3793],{"alt":3794,"src":3795},"Suchen der eindeutigen Remote-Vault-ID in Synchrun","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynchrun-remote-vault-id.webp",[430,3797,3798,3799,3802],{},"Geben Sie Ihr Tresor-Passwort ein, wenn Sie dazu aufgefordert werden, um die Verbindung herzustellen. Führen Sie nach dem Verbinden ",[495,3800,3801],{},"synch sync --vault ~\u002Fvaults\u002F\u003Ctresor-name>"," aus, um Ihre erste Synchronisation durchzuführen. Dieser erste Durchlauf kann je nach Größe Ihres Tresors einige Zeit in Anspruch nehmen.",[430,3804,3805],{},[433,3806],{"alt":3807,"src":3808},"Fortschritt der anfänglichen Vault-Synchronisierung in Synch CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fsynch-cli-initial-sync-progress.webp",[430,3810,3811,3812,3815],{},"Um dies zu automatisieren, richten Sie einen systemd-Dienst ein, um ",[495,3813,3814],{},"synch watch"," kontinuierlich auszuführen, und aktivieren Sie diesen, um sicherzustellen, dass Änderungen beim Booten sofort synchronisiert werden:",[926,3817,3819],{"className":1035,"code":3818,"language":1037,"meta":425,"style":425},"sudo tee \u002Fetc\u002Fsystemd\u002Fsystem\u002Fsynch-watch.service \u003C\u003C'EOF'\n[Unit]\nDescription=Synch vault watcher\nAfter=network-online.target\nWants=network-online.target\n\n[Service]\nType=simple\nUser=\u003Cusername>\nExecStart=\u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin\u002Fsynch watch --vault \u002Fhome\u002F\u003Cusername>\u002Fvaults\u002F\u003Cvault-name>\nWorkingDirectory=\u002Fhome\u002F\u003Cusername>\u002Fvaults\nEnvironment=\"PATH=\u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin:\u002Fhome\u002F\u003Cusername>\u002F.cargo\u002Fbin:\u002Fusr\u002Flocal\u002Fsbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fsbin:\u002Fusr\u002Fbin:\u002Fsbin:\u002Fbin\"\nEnvironment=\"HOME=\u002Fhome\u002F\u003Cusername>\"\nRestart=always\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target\nEOF\nsudo systemctl daemon-reload\nsudo systemctl enable --now synch-watch.service\n",[495,3820,3821,3837,3841,3846,3851,3856,3860,3864,3869,3874,3879,3884,3889,3894,3898,3903,3907,3911,3915,3921,3930],{"__ignoreMap":425},[934,3822,3823,3825,3828,3831,3834],{"class":936,"line":937},[934,3824,1895],{"class":1044},[934,3826,3827],{"class":1048}," tee",[934,3829,3830],{"class":1048}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fsynch-watch.service",[934,3832,3833],{"class":948}," \u003C\u003C",[934,3835,3836],{"class":948},"'EOF'\n",[934,3838,3839],{"class":936,"line":1064},[934,3840,2340],{"class":1048},[934,3842,3843],{"class":936,"line":1071},[934,3844,3845],{"class":1048},"Description=Synch vault watcher\n",[934,3847,3848],{"class":936,"line":1078},[934,3849,3850],{"class":1048},"After=network-online.target\n",[934,3852,3853],{"class":936,"line":1927},[934,3854,3855],{"class":1048},"Wants=network-online.target\n",[934,3857,3858],{"class":936,"line":1932},[934,3859,1068],{"emptyLinePlaceholder":1067},[934,3861,3862],{"class":936,"line":1938},[934,3863,2359],{"class":1048},[934,3865,3866],{"class":936,"line":2275},[934,3867,3868],{"class":1048},"Type=simple\n",[934,3870,3871],{"class":936,"line":2286},[934,3872,3873],{"class":1048},"User=\u003Cusername>\n",[934,3875,3876],{"class":936,"line":1699},[934,3877,3878],{"class":1048},"ExecStart=\u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin\u002Fsynch watch --vault \u002Fhome\u002F\u003Cusername>\u002Fvaults\u002F\u003Cvault-name>\n",[934,3880,3881],{"class":936,"line":2387},[934,3882,3883],{"class":1048},"WorkingDirectory=\u002Fhome\u002F\u003Cusername>\u002Fvaults\n",[934,3885,3886],{"class":936,"line":2393},[934,3887,3888],{"class":1048},"Environment=\"PATH=\u002Fhome\u002F\u003Cusername>\u002F.local\u002Fbin:\u002Fhome\u002F\u003Cusername>\u002F.cargo\u002Fbin:\u002Fusr\u002Flocal\u002Fsbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fsbin:\u002Fusr\u002Fbin:\u002Fsbin:\u002Fbin\"\n",[934,3890,3891],{"class":936,"line":2398},[934,3892,3893],{"class":1048},"Environment=\"HOME=\u002Fhome\u002F\u003Cusername>\"\n",[934,3895,3896],{"class":936,"line":2404},[934,3897,2379],{"class":1048},[934,3899,3900],{"class":936,"line":3361},[934,3901,3902],{"class":1048},"RestartSec=5\n",[934,3904,3905],{"class":936,"line":3372},[934,3906,1068],{"emptyLinePlaceholder":1067},[934,3908,3909],{"class":936,"line":3377},[934,3910,2401],{"class":1048},[934,3912,3913],{"class":936,"line":3385},[934,3914,2407],{"class":1048},[934,3916,3918],{"class":936,"line":3917},19,[934,3919,3920],{"class":948},"EOF\n",[934,3922,3924,3926,3928],{"class":936,"line":3923},20,[934,3925,1895],{"class":1044},[934,3927,1898],{"class":1048},[934,3929,2426],{"class":1048},[934,3931,3933,3935,3937,3939,3942],{"class":936,"line":3932},21,[934,3934,1895],{"class":1044},[934,3936,1898],{"class":1048},[934,3938,2025],{"class":1048},[934,3940,3941],{"class":1048}," --now",[934,3943,3944],{"class":1048}," synch-watch.service\n",[430,3946,3947,3948,3950],{},"Öffnen Sie ",[495,3949,3199],{}," in Ihrem Webbrowser. Sie werden feststellen, dass die Benutzeroberfläche und das Layout praktisch identisch mit der Desktop-App sind:",[433,3952],{"src":3953,"alt":3954,"style":3955},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-web-interface-desktop-view.webp","Ignis-Weboberfläche zeigt den Obsidian-Vault auf dem Desktop an","max-width: 593px; width: 100%; height: auto;",[430,3957,3958],{},"Ein Klick auf das Einstellungssymbol zeigt, dass fast alle Kernkonfigurationen intakt sind, obwohl Ihre Community-Plugins neu installiert werden müssen:",[433,3960],{"src":3961,"alt":3962,"style":3963},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-settings-community-plugins.webp","Community-Plugin-Einstellungen in der Ignis-Weboberfläche","max-width: 597px; width: 100%; height: auto;",[430,3965,3966],{},"Um das Setup zu testen, können Sie über die Webschnittstelle eine neue Notiz hinzufügen:",[433,3968],{"src":3969,"alt":3970,"style":3963},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-create-new-note-web.webp","Erstellen einer neuen Markdown-Notiz über die Ignis-Weboberfläche",[430,3972,3973,3974,3976],{},"Die Notiz wird sofort mit Ihrer Obsidian-Desktop-App synchronisiert. Beachten Sie, dass leere Ordner in ",[441,3975,2684],{}," nicht angezeigt werden.",[433,3978],{"src":3979,"alt":3980,"style":3981},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fobsidian-desktop-synced-note.webp","Neu erstellte Notiz erfolgreich mit der Obsidian-Desktop-App synchronisiert","max-width: 502px; width: 100%; height: auto;",[430,3983,3984,3985,3987],{},"Anzeigen von ",[495,3986,3199],{}," auf einem mobilen Webbrowser:",[430,3989,3990,3995],{},[433,3991],{"src":3992,"alt":3993,"style":3994},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-mobile-view-sidebar.webp","Seitenleisten-Navigation des Ignis-Webclients auf einem Mobilgerät","max-width: 269px; width: 100%; height: auto;",[433,3996],{"src":3997,"alt":3998,"style":3994},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002Fignis-mobile-view-editor.webp","Markdown-Notiz-Editor des Ignis-Webclients auf einem Mobilgerät",[430,4000,4001,4002,4004,4005,4008],{},"Wenn Sie eine Notiz in ",[441,4003,2684],{}," löschen, wird sie sicher in den Ordner ",[495,4006,4007],{},"~\u002Fvaults\u002F\u003Ctresor-name>\u002F.trash"," Ihres lokalen Tresors verschoben.",[474,4010,4012],{"id":4011},"abschließende-gedanken-zu-selbst-gehosteten-tresoren","Abschließende Gedanken zu selbst gehosteten Tresoren",[430,4014,4015,4016,576,4018,4020,4021,4023],{},"Zusammen sorgen ",[441,4017,2675],{},[441,4019,2684],{}," dafür, dass Ihr Haupt-Obsidian-Tresor nahtlos auf allen Ihren Geräten verfügbar ist, vollständig gehostet auf einer Infrastruktur unter Ihrer direkten Kontrolle. Die Platzierung dieser Dienste in einem privaten Netzwerk von ",[441,4022,1725],{}," stellt sicher, dass Ihre persönlichen Notizen vollständig vor dem öffentlichen Internet geschützt sind.",[430,4025,4026,4028],{},[441,4027,2684],{}," ist nicht dazu gedacht, die native Obsidian-Desktop-App vollständig zu ersetzen. Stattdessen dient es als schlanker, temporärer Webclient für den Zugriff auf und die Bearbeitung Ihres Tresors, wenn Sie nicht an Ihrem Hauptcomputer sind. Für das tägliche Schreiben und die umfassende Tresorverwaltung bleibt die native Obsidian-Anwendung die komfortabelste Wahl.",[430,4030,4031,4032,4034],{},"Da Synch eine Ende-zu-Ende-Verschlüsselung verwendet, muss Ihr Remote-Tresor-Passwort hochsicher sein, um vor Brute-Force-Angriffen zu schützen. Es ist von entscheidender Bedeutung, dass Sie dieses Passwort niemals verlieren – der Server speichert den unverschlüsselten ",[441,4033,2746],{}," nicht, und wenn Sie ihn vergessen, sind Ihre Daten völlig unwiederbringlich verloren. Stellen Sie außerdem sicher, dass Ihre VPS-Instanz zusammen mit allen automatisierten Snapshots oder Backups ordnungsgemäß gesichert und gewartet wird.",[430,4036,4037],{},"Obwohl der verschlüsselte Versionsverlauf von Synch und die Tools zur Wiederherstellung gelöschter Dateien die meisten versehentlichen Verluste abdecken, wird dennoch dringend empfohlen, ein separates, unabhängiges Backup Ihres Obsidian-Tresors aufzubewahren.",[474,4039,4040],{"id":1614},"Referenzen",[485,4042,4043,4050,4057],{},[488,4044,4045],{},[444,4046,4049],{"href":4047,"rel":4048},"https:\u002F\u002Fsynch.run\u002Fself-hosting-docker\u002F",[448],"Synch-Bereitstellung mit Docker Compose",[488,4051,4052],{},[444,4053,4056],{"href":4054,"rel":4055},"https:\u002F\u002Fignis.thiefling.com\u002Fdocs\u002Fserver\u002Fdeploy\u002F",[448],"Ignis-Bereitstellung mit Docker",[488,4058,4059],{},[444,4060,4063],{"href":4061,"rel":4062},"https:\u002F\u002Fsynch.run\u002Fblog\u002Fencryption-and-decryption\u002F",[448],"Wie funktioniert die Ende-zu-Ende-Verschlüsselung in Synch?",[1643,4065,4066],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":425,"searchDepth":1064,"depth":1071,"links":4068},[4069,4078,4087,4088],{"id":2718,"depth":1064,"text":2719,"children":4070},[4071,4075],{"id":2760,"depth":1071,"text":2761,"children":4072},[4073,4074],{"id":2764,"depth":1078,"text":2765},{"id":2780,"depth":1078,"text":2781},{"id":3011,"depth":1071,"text":3012,"children":4076},[4077],{"id":3015,"depth":1078,"text":3016},{"id":3134,"depth":1064,"text":3135,"children":4079},[4080],{"id":3156,"depth":1071,"text":3157,"children":4081},[4082,4083,4084,4085,4086],{"id":3184,"depth":1078,"text":3185},{"id":3193,"depth":1078,"text":2887},{"id":3240,"depth":1078,"text":3241},{"id":3470,"depth":1078,"text":3471},{"id":3556,"depth":1078,"text":3557},{"id":4011,"depth":1064,"text":4012},{"id":1614,"depth":1064,"text":4040},[4090],"productivity","2026-09-15","Synchronisieren Sie Ihre Obsidian-Vaults sicher zwischen Geräten und greifen Sie per Web mit selbst gehostetem Synch & Ignis über Cloudflare Zero Trust zu.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSync%20Obsidian%20Across%20Devices\u002FDE-Sync-Obsidian-Across-Devices.webp","Sichere Synchronisierung von Obsidian-Vaults zwischen mehreren Geräten über selbstgehostetes Synch und den Ignis-Webclient im Cloudflare Zero Trust Netzwerk",{"schemaOrg":4096,"robots":1697,"sitemap":4100},[4097,4099],{"@type":4098,"headline":2657,"description":4092,"image":4093},"Article",{"@type":1676,"name":2657,"description":4092,"image":4093},{"lastmod":4101},"2026-09-16",{"title":4103,"description":4092,"ogTitle":2657,"ogDescription":4092,"twitterTitle":2657,"twitterDescription":4092},"Sichere Obsidian-Synchronisation mit Synch und Ignis","de\u002Farticle\u002Fsync-obsidian-across-devices",[4106,4107,4108,2651],"Self-Hosting","Obsidian","Synchronisierung","7Ebcw1ELL387eJ-Tv-_8l-y4SjkrPCpAgCSl0W7PjSI",{"id":4111,"title":455,"author":425,"body":4112,"category":6241,"date":6242,"description":465,"extension":1668,"image":466,"imageAlt":467,"isPublished":1067,"meta":6243,"minRead":3377,"navigation":1067,"path":19,"seo":6265,"stem":6267,"tags":6268,"updatedAt":1706,"__hash__":6272},"article\u002Fde\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues.md",{"type":427,"value":4113,"toc":6211},[4114,4117,4123,4128,4132,4135,4173,4177,4183,4221,4225,4229,4243,4249,4254,4258,4262,4277,4283,4331,4357,4361,4369,4375,4379,4382,4592,4596,4636,4642,4649,4657,4706,4712,4738,4742,4746,4773,4799,4804,4846,4855,5126,5130,5173,5178,5185,5189,5193,5217,5220,5226,5229,5233,5241,5247,5250,5256,5262,5286,5292,5298,5301,5307,5311,5314,5317,5320,5326,5329,5335,5341,5347,5352,5356,5367,5374,5380,5383,5389,5393,5400,5406,5412,5416,5425,5489,5502,5557,5560,5630,5636,5650,5656,5660,5705,5711,5714,5720,5723,5729,5733,5748,5764,5770,5867,5870,5876,5887,5933,5939,5945,5957,5973,5976,5982,5986,5993,6015,6025,6123,6134,6140,6147,6153,6156,6162,6165,6171,6173,6176,6178,6208],[430,4115,4116],{},"Die Fragmentierung des Kontexts ist eine frustrierende Hürde bei der Arbeit mit mehreren KI-Agenten. Wenn Konversationen über verschiedene Tools verstreut sind, agieren Sie letztendlich als menschlicher Router, indem Sie Gespräche aus Claude Code kopieren, um sie in die Gemini-CLI einzufügen, und dann aus der Gemini-CLI kopieren, um sie in den Hermes-Agenten einzufügen. Diese Reibung nimmt zu, wenn auch noch menschliche Kollegen im selben Team sind.",[430,4118,4119],{},[433,4120],{"alt":4121,"src":4122},"Die Benutzeroberfläche des kollaborativen Buzz-Workspace mit Chat-Kanälen und aktiven KI-Agenten","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-workspace-interface.webp",[430,4124,4125,4127],{},[441,4126,1105],{},", ein Open-Source-Kollaborations-Workspace, bringt menschliche Teams und KI-Agenten in einer einzigen, einheitlichen Umgebung zusammen. Hier teilen sich menschliche Kollegen und KI-Agenten dieselbe Aufgaben- und Projekthistorie und übergeben sich nahtlos gegenseitig die Arbeit.",[474,4129,4131],{"id":4130},"was-ist-blocks-buzz-der-kollaborative-workspace-für-ki-agenten","Was ist Block's Buzz? Der kollaborative Workspace für KI-Agenten",[430,4133,4134],{},"Buzz ist ein Open-Source-Kollaborations-Workspace von Block (dem Unternehmen von Jack Dorsey), in dem Menschen und KI-Agenten dieselben Kanäle und Projekte teilen. Es bietet die folgenden Hauptfunktionen:",[485,4136,4137,4143,4149,4155,4161,4167],{},[488,4138,4139,4142],{},[441,4140,4141],{},"Gemeinsamer Kontext:"," In den Kanälen arbeiten Menschen und Agenten zusammen. Der gesamte Konversations- und Projektverlauf ist im Kanal enthalten.",[488,4144,4145,4148],{},[441,4146,4147],{},"Agent-zu-Agent-Kommunikation:"," Agenten können miteinander kommunizieren, selbst über verschiedene Maschinen hinweg. Ein Agent kann einen anderen Agenten per @-Mention erwähnen, um Arbeit zu übergeben oder Code abzugleichen.",[488,4150,4151,4154],{},[441,4152,4153],{},"Erwähnungsveranlasste Aktivierung (Mention-driven):"," Agenten agieren nur, wenn sie per @-Mention erwähnt werden, ansonsten verhalten sie sich ruhig. Bei einer Erwähnung liest ein Agent den relevanten Kontext im Kanal und beginnt mit der Arbeit.",[488,4156,4157,4160],{},[441,4158,4159],{},"Einheitliches Identitätssystem:"," Menschen und Agenten nutzen dasselbe Identitätssystem, das über kryptografische Schlüssel authentifiziert wird.",[488,4162,4163,4166],{},[441,4164,4165],{},"Delegierte Befehle:"," Sie können menschlichen Kollegen die Berechtigung erteilen, Ihre Agenten zu steuern, sodass das gesamte Team die digitalen Helfer der anderen instruieren und nutzen kann.",[488,4168,4169,4172],{},[441,4170,4171],{},"Selbst gehostete Server (Self-hosted):"," Da Sie den Server selbst hosten, bleiben Ihre Daten vollständig unter Ihrer Kontrolle. Sie entscheiden, wer beitritt, und definieren Ihre eigenen Betriebsregeln.",[474,4174,4176],{"id":4175},"die-kryptografische-nostr-basierte-architektur-von-buzz","Die kryptografische, Nostr-basierte Architektur von Buzz",[430,4178,4179],{},[433,4180],{"alt":4181,"src":4182},"Kryptografisches, Nostr-basiertes Architekturdiagramm des Buzz-Workspace","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-nostr-cryptographic-architecture.webp",[485,4184,4185,4191,4197,4203,4209,4215],{},[488,4186,4187,4190],{},[441,4188,4189],{},"Das Nostr-Relay fungiert als Server:"," Nachrichten, Workflows, Repositories und andere Events werden kryptografisch signiert, verifiziert und auf einem Nostr-Relay-Server gespeichert. Das Nostr-Protokoll unterstützt nativ die Kommunikation über WebSockets und REST-APIs.",[488,4192,4193,4196],{},[441,4194,4195],{},"Einheitliche kryptografische Identität:"," Sowohl Menschen als auch Agenten authentifizieren sich mit ihren eigenen kryptografischen Schlüsseln. Diese Identität bleibt auf der Client-Seite und wird niemals auf dem Server gespeichert.",[488,4198,4199,4202],{},[441,4200,4201],{},"Erstklassige Agenten-Mitgliedschaft:"," Jeder Agent besitzt seine eigene Identität, Kanalmitgliedschaften und ein Audit-Protokoll. Agenten verbinden sich über das Agent Communication Protocol (ACP) mit dem Workspace.",[488,4204,4205,4208],{},[441,4206,4207],{},"Dezentrale Git-Repositories:"," Code-Repositories werden auf S3-kompatiblem Objektspeicher gesichert, während Aufgaben, Pull Requests und Code-Reviews im Nostr-Event-Log nachverfolgt werden. Folglich wird ein Buzz-Git-Repository auf dem Nostr-Relay und nicht auf GitHub gehostet.",[488,4210,4211,4214],{},[441,4212,4213],{},"Die Buzz-App is ein Nostr-Client:"," Buzz ist unabhängig vom Nostr-Relay; es ist eine Desktop-\u002FMobile-Client-Anwendung, die sich mit der URL des Relays verbindet.",[488,4216,4217,4220],{},[441,4218,4219],{},"Infrastruktur-Stack:"," Eine PostgreSQL-Datenbank übernimmt die Event-Speicherung und Volltextsuche, Redis verwaltet das Pub\u002FSub-Messaging und MinIO (S3-kompatibel) wird für die Medienspeicherung verwendet.",[474,4222,4224],{"id":4223},"blocks-buzz-relay-auf-einem-linux-vps-selbst-hosten-eine-anleitung","Block's Buzz Relay auf einem Linux-VPS selbst hosten: Eine Anleitung",[881,4226,4228],{"id":4227},"_0-voraussetzungen","0. Voraussetzungen",[485,4230,4231,4234,4237,4240],{},[488,4232,4233],{},"Ein Linux-VPS",[488,4235,4236],{},"Eine Domain, die auf Ihren Server zeigt",[488,4238,4239],{},"Docker und das Docker Compose-Plugin",[488,4241,4242],{},"Cloudflare-Konto (kostenlose Version)",[430,4244,4245,4246,4248],{},"In diesem Guide werden wir das Nostr-Relay auf einem Ubuntu-VPS hinter einem privaten Netzwerk von ",[444,4247,1710],{"href":363}," betreiben. Der Stack besteht aus vier Diensten in Docker Compose — Relay, PostgreSQL, Redis und MinIO — plus Caddy für HTTPS.",[463,4250],{"description":4251,"image":2611,"image-alt":4252,"label":4253,"min-read":2714,"title":1710,"to":363},"Erfahren Sie, wie Sie Ihren Hermes-Agenten mithilfe von Cloudflare WARP und Zero Trust sicher weltweit freigeben und darauf zugreifen können, ohne eingehende Firewall-Ports zu öffnen.","Sicheres Freigeben des Hermes-Agenten in einem privaten Netzwerk mithilfe von Cloudflare Zero Trust und einem WARP-Tunnel","Ähnlicher Leitfaden",[881,4255,4257],{"id":4256},"_1-cloudflare-dns-und-api-token","1. Cloudflare-DNS und API-Token",[2162,4259,4261],{"id":4260},"cloudflare-api-token-erstellen","Cloudflare-API-Token erstellen",[533,4263,4264,4271],{},[488,4265,4266,4267,4270],{},"Klicken Sie auf das Profilsymbol oben rechts und wählen Sie das Menü ",[441,4268,4269],{},"Profile"," aus.",[488,4272,4273,4274,552],{},"Klicken Sie auf ",[441,4275,4276],{},"API Tokens",[430,4278,4279],{},[433,4280],{"alt":4281,"src":4282},"Cloudflare-Benutzerprofilseite mit dem Menü zur Erstellung von API-Tokens","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fcloudflare-profile-api-tokens.webp",[533,4284,4285,4290,4296,4316,4321,4325,4328],{"start":1071},[488,4286,4273,4287,552],{},[441,4288,4289],{},"Create Token",[488,4291,4292,4293,552],{},"Nutzen Sie die Vorlage ",[441,4294,4295],{},"Edit zone DNS",[488,4297,4298,4299],{},"Konfigurieren Sie die Vorlage wie folgt:\n",[485,4300,4301,4307],{},[488,4302,4303,4306],{},[441,4304,4305],{},"Permissions",": Zone — DNS — Edit",[488,4308,4309,4312,4313],{},[441,4310,4311],{},"Zone Resources",": Include — Specific zone — ",[495,4314,4315],{},"example.com",[488,4317,4273,4318,552],{},[441,4319,4320],{},"Continue to summary",[488,4322,4273,4323,552],{},[441,4324,4289],{},[488,4326,4327],{},"Kopieren Sie das generierte Token, da es nach dem Schließen der Seite nicht mehr angezeigt wird.",[488,4329,4330],{},"Testen Sie das generierte Token in Ihrem Terminal, um sicherzustellen, dass es funktioniert:",[926,4332,4334],{"className":1035,"code":4333,"language":1037,"meta":425,"style":425},"curl \"https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Fuser\u002Ftokens\u002Fverify\" -H \"Authorization: Bearer YOUR_TOKEN_HERE\"\n",[495,4335,4336],{"__ignoreMap":425},[934,4337,4338,4340,4342,4345,4347,4350,4352,4355],{"class":936,"line":937},[934,4339,2995],{"class":1044},[934,4341,3292],{"class":948},[934,4343,4344],{"class":1048},"https:\u002F\u002Fapi.cloudflare.com\u002Fclient\u002Fv4\u002Fuser\u002Ftokens\u002Fverify",[934,4346,3704],{"class":948},[934,4348,4349],{"class":1048}," -H",[934,4351,3292],{"class":948},[934,4353,4354],{"class":1048},"Authorization: Bearer YOUR_TOKEN_HERE",[934,4356,1959],{"class":948},[2162,4358,4360],{"id":4359},"dns-einträge","DNS-Einträge",[485,4362,4363],{},[488,4364,4365,4366,552],{},"Erstellen Sie einen A-Eintrag und setzen Sie ihn auf ",[441,4367,4368],{},"DNS only",[430,4370,4371],{},[433,4372],{"alt":4373,"src":4374},"Konfigurieren eines DNS-A-Eintrags für die Buzz-Domain im Cloudflare-Dashboard, Status auf 'DNS only'","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fcloudflare-dns-a-record-configuration.webp",[881,4376,4378],{"id":4377},"_2-docker-auf-ubuntu-installieren","2. Docker auf Ubuntu installieren",[430,4380,4381],{},"Führen Sie die folgenden Befehle aus, um Docker auf Ubuntu zu installieren:",[926,4383,4385],{"className":1035,"code":4384,"language":1037,"meta":425,"style":425},"# Add Docker's official GPG key and set up the Docker repository\ncurl -fsSL https:\u002F\u002Fdownload.docker.com\u002Flinux\u002Fubuntu\u002Fgpg | sudo gpg --dearmor -o \u002Fusr\u002Fshare\u002Fkeyrings\u002Fdocker-archive-keyring.gpg\n\n# Add the official Docker repository\necho \"deb [arch=amd64 signed-by=\u002Fusr\u002Fshare\u002Fkeyrings\u002Fdocker-archive-keyring.gpg] https:\u002F\u002Fdownload.docker.com\u002Flinux\u002Fubuntu $(lsb_release -cs) stable\" | sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fdocker.list > \u002Fdev\u002Fnull\n\n# Update package list\nsudo apt update\n\n# Install Docker Engine, Docker Community Edition, and containerd runtime\nsudo apt install docker-ce docker-ce-cli containerd.io -y\n\n# Start automatically when the system boots\nsudo systemctl enable docker\n\n# Verify docker is installed\ndocker --version\n\nsudo apt install -y docker-compose-plugin\n\n# Verify the compose plugin is installed\ndocker compose version\n\n",[495,4386,4387,4392,4420,4424,4429,4471,4475,4480,4490,4494,4499,4520,4524,4529,4540,4544,4549,4555,4559,4573,4577,4582],{"__ignoreMap":425},[934,4388,4389],{"class":936,"line":937},[934,4390,4391],{"class":1074},"# Add Docker's official GPG key and set up the Docker repository\n",[934,4393,4394,4396,4399,4402,4405,4408,4411,4414,4417],{"class":936,"line":1064},[934,4395,2995],{"class":1044},[934,4397,4398],{"class":1048}," -fsSL",[934,4400,4401],{"class":1048}," https:\u002F\u002Fdownload.docker.com\u002Flinux\u002Fubuntu\u002Fgpg",[934,4403,4404],{"class":948}," |",[934,4406,4407],{"class":1044}," sudo",[934,4409,4410],{"class":1048}," gpg",[934,4412,4413],{"class":1048}," --dearmor",[934,4415,4416],{"class":1048}," -o",[934,4418,4419],{"class":1048}," \u002Fusr\u002Fshare\u002Fkeyrings\u002Fdocker-archive-keyring.gpg\n",[934,4421,4422],{"class":936,"line":1071},[934,4423,1068],{"emptyLinePlaceholder":1067},[934,4425,4426],{"class":936,"line":1078},[934,4427,4428],{"class":1074},"# Add the official Docker repository\n",[934,4430,4431,4434,4436,4439,4442,4445,4448,4451,4454,4456,4458,4460,4462,4465,4468],{"class":936,"line":1927},[934,4432,4433],{"class":965},"echo",[934,4435,3292],{"class":948},[934,4437,4438],{"class":1048},"deb [arch=amd64 signed-by=\u002Fusr\u002Fshare\u002Fkeyrings\u002Fdocker-archive-keyring.gpg] https:\u002F\u002Fdownload.docker.com\u002Flinux\u002Fubuntu ",[934,4440,4441],{"class":948},"$(",[934,4443,4444],{"class":1044},"lsb_release",[934,4446,4447],{"class":1048}," -cs",[934,4449,4450],{"class":948},")",[934,4452,4453],{"class":1048}," stable",[934,4455,3704],{"class":948},[934,4457,4404],{"class":948},[934,4459,4407],{"class":1044},[934,4461,3827],{"class":1048},[934,4463,4464],{"class":1048}," \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fdocker.list",[934,4466,4467],{"class":948}," >",[934,4469,4470],{"class":1048}," \u002Fdev\u002Fnull\n",[934,4472,4473],{"class":936,"line":1932},[934,4474,1068],{"emptyLinePlaceholder":1067},[934,4476,4477],{"class":936,"line":1938},[934,4478,4479],{"class":1074},"# Update package list\n",[934,4481,4482,4484,4487],{"class":936,"line":2275},[934,4483,1895],{"class":1044},[934,4485,4486],{"class":1048}," apt",[934,4488,4489],{"class":1048}," update\n",[934,4491,4492],{"class":936,"line":2286},[934,4493,1068],{"emptyLinePlaceholder":1067},[934,4495,4496],{"class":936,"line":1699},[934,4497,4498],{"class":1074},"# Install Docker Engine, Docker Community Edition, and containerd runtime\n",[934,4500,4501,4503,4505,4508,4511,4514,4517],{"class":936,"line":2387},[934,4502,1895],{"class":1044},[934,4504,4486],{"class":1048},[934,4506,4507],{"class":1048}," install",[934,4509,4510],{"class":1048}," docker-ce",[934,4512,4513],{"class":1048}," docker-ce-cli",[934,4515,4516],{"class":1048}," containerd.io",[934,4518,4519],{"class":1048}," -y\n",[934,4521,4522],{"class":936,"line":2393},[934,4523,1068],{"emptyLinePlaceholder":1067},[934,4525,4526],{"class":936,"line":2398},[934,4527,4528],{"class":1074},"# Start automatically when the system boots\n",[934,4530,4531,4533,4535,4537],{"class":936,"line":2404},[934,4532,1895],{"class":1044},[934,4534,1898],{"class":1048},[934,4536,2025],{"class":1048},[934,4538,4539],{"class":1048}," docker\n",[934,4541,4542],{"class":936,"line":3361},[934,4543,1068],{"emptyLinePlaceholder":1067},[934,4545,4546],{"class":936,"line":3372},[934,4547,4548],{"class":1074},"# Verify docker is installed\n",[934,4550,4551,4553],{"class":936,"line":3377},[934,4552,1178],{"class":1044},[934,4554,3627],{"class":1048},[934,4556,4557],{"class":936,"line":3385},[934,4558,1068],{"emptyLinePlaceholder":1067},[934,4560,4561,4563,4565,4567,4570],{"class":936,"line":3917},[934,4562,1895],{"class":1044},[934,4564,4486],{"class":1048},[934,4566,4507],{"class":1048},[934,4568,4569],{"class":1048}," -y",[934,4571,4572],{"class":1048}," docker-compose-plugin\n",[934,4574,4575],{"class":936,"line":3923},[934,4576,1068],{"emptyLinePlaceholder":1067},[934,4578,4579],{"class":936,"line":3932},[934,4580,4581],{"class":1074},"# Verify the compose plugin is installed\n",[934,4583,4585,4587,4589],{"class":936,"line":4584},22,[934,4586,1178],{"class":1044},[934,4588,1181],{"class":1048},[934,4590,4591],{"class":1048}," version\n",[881,4593,4595],{"id":4594},"_3-klonen-und-konfigurieren","3. Klonen und konfigurieren",[926,4597,4599],{"className":1035,"code":4598,"language":1037,"meta":425,"style":425},"git clone https:\u002F\u002Fgithub.com\u002Fblock\u002Fbuzz.git\n\ncd buzz\u002Fdeploy\u002Fcompose\ncp .env.example .env\nnano .env\n",[495,4600,4601,4610,4614,4621,4629],{"__ignoreMap":425},[934,4602,4603,4605,4607],{"class":936,"line":937},[934,4604,2796],{"class":1044},[934,4606,2799],{"class":1048},[934,4608,4609],{"class":1048}," https:\u002F\u002Fgithub.com\u002Fblock\u002Fbuzz.git\n",[934,4611,4612],{"class":936,"line":1064},[934,4613,1068],{"emptyLinePlaceholder":1067},[934,4615,4616,4618],{"class":936,"line":1071},[934,4617,2820],{"class":965},[934,4619,4620],{"class":1048}," buzz\u002Fdeploy\u002Fcompose\n",[934,4622,4623,4625,4627],{"class":936,"line":1078},[934,4624,2837],{"class":1044},[934,4626,2840],{"class":1048},[934,4628,2843],{"class":1048},[934,4630,4631,4634],{"class":936,"line":1927},[934,4632,4633],{"class":1044},"nano",[934,4635,2843],{"class":1048},[430,4637,4638,4639,4641],{},"Editieren Sie die ",[495,4640,2850],{}," in Gruppen:",[485,4643,4644],{},[488,4645,4646],{},[441,4647,4648],{},"Domain:",[926,4650,4655],{"className":4651,"code":4653,"language":4654},[4652],"language-text","BUZZ_DOMAIN=buzz.pafor.me\nRELAY_URL=wss:\u002F\u002Fbuzz.pafor.me\nBUZZ_PAIRING_RELAY_URL=wss:\u002F\u002Fbuzz.pafor.me\u002Fpair\nBUZZ_MEDIA_BASE_URL=https:\u002F\u002Fbuzz.pafor.me\u002Fmedia\nBUZZ_MEDIA_SERVER_DOMAIN=buzz.pafor.me\nBUZZ_CORS_ORIGINS=https:\u002F\u002Fbuzz.pafor.me\n","text",[495,4656,4653],{"__ignoreMap":425},[485,4658,4659,4669],{},[488,4660,4661,4664,4665,4668],{},[441,4662,4663],{},"Besitzerschlüssel:"," ",[495,4666,4667],{},"RELAY_OWNER_PUBKEY"," erfordert Ihren 64-stelligen hexadezimalen öffentlichen Schlüssel. Erstellen Sie zuerst eine Identität in der Desktop-App ('Create a new identity key' → kopieren Sie Ihre öffentliche ID, die im npub-Format vorliegt) und konvertieren Sie diese dann in Hex.",[488,4670,4671,4674],{},[441,4672,4673],{},"Geheimnisse (Secrets):",[485,4675,4676,4686,4700],{},[488,4677,4678,4679,4682,4683,4685],{},"Generieren Sie Geheimnisse mit diesem ",[444,4680,4681],{"href":2871},"Online-Tool"," oder mit ",[495,4684,2876],{}," (führen Sie es siebenmal aus)",[488,4687,4688,4689,4692,4693,744,4696,4699],{},"Ersetzen Sie jeden ",[495,4690,4691],{},"CHANGE_ME","-Platzhalter: ",[495,4694,4695],{},"BUZZ_RELAY_PRIVATE_KEY",[495,4697,4698],{},"BUZZ_GIT_HOOK_HMAC_SECRET",", die Passwörter für Postgres\u002FRedis\u002FTypesense und die S3-Zugangs-\u002FGeheimschlüssel.",[488,4701,4702,4703,552],{},"Verbleibende Platzhalter sind die häufigste Ursache für Container-Neustartschleifen; überprüfen Sie Ihre mit ",[495,4704,4705],{},"grep CHANGE_ME .env",[926,4707,4710],{"className":4708,"code":4709,"language":4654},[4652],"    BUZZ_RELAY_PRIVATE_KEY=CHANGE_ME_64_HEX_PRIVATE_KEY\n    BUZZ_GIT_HOOK_HMAC_SECRET=CHANGE_ME_RANDOM_64_HEX\n    POSTGRES_PASSWORD=CHANGE_ME_RANDOM_PASSWORD\n    REDIS_PASSWORD=CHANGE_ME_RANDOM_PASSWORD\n    TYPESENSE_API_KEY=CHANGE_ME_RANDOM_API_KEY\n    BUZZ_S3_ACCESS_KEY=CHANGE_ME_RANDOM_ACCESS_KEY\n    BUZZ_S3_SECRET_KEY=CHANGE_ME_RANDOM_SECRET_KEY\n",[495,4711,4709],{"__ignoreMap":425},[485,4713,4714],{},[488,4715,4716,4719],{},[441,4717,4718],{},"Sonstiges:",[485,4720,4721,4727],{},[488,4722,3196,4723,4726],{},[495,4724,4725],{},"CLOUDFLARE_API_TOKEN"," als Umgebungsvariable hinzu und weisen Sie das zuvor generierte API-Token zu. Dies wird für Caddy benötigt.",[488,4728,4729,4730,744,4732,576,4735,552],{},"Buzz wird mit offenen Standardeinstellungen ausgeliefert — jeder, der Ihre Relay-URL kennt, kann sich authentifizieren und beitreten. Setzen Sie ",[495,4731,4667],{},[495,4733,4734],{},"BUZZ_REQUIRE_RELAY_MEMBERSHIP=true",[495,4736,4737],{},"BUZZ_REQUIRE_AUTH_TOKEN=true",[881,4739,4741],{"id":4740},"_4-https-mit-caddy-aktivieren","4. HTTPS mit Caddy aktivieren",[2162,4743,4745],{"id":4744},"eigenes-caddy-image-mit-dem-cloudflare-dns-modul-erstellen","Eigenes Caddy-Image mit dem Cloudflare-DNS-Modul erstellen",[485,4747,4748,4759,4770],{},[488,4749,4750,4751,4754,4755,4758],{},"Wir richten DNS-01 mit Cloudflare für Caddy ein. DNS-01 funktioniert, indem das Plugin einen TXT-Eintrag ",[495,4752,4753],{},"_acme-challenge.buzz.pafor.me"," in das ",[441,4756,4757],{},"öffentliche DNS"," schreibt;",[488,4760,4761,4762,4765,4766,4769],{},"Let's Encrypt ruft den Eintrag dann aus dem öffentlichen Internet ab, um die Domaininhaberschaft zu überprüfen. Das bedeutet, dass ",[495,4763,4764],{},"pafor.me"," eine öffentliche Zone in Ihrem Cloudflare-Konto sein muss — nicht nur ein privater Hostname, der nur im privaten DNS von Zero Trust \u002F WARP existiert. Wenn ",[495,4767,4768],{},"buzz.pafor.me"," nur privat aufgelöst wird und keine öffentliche Zone vorhanden ist, schlägt DNS-01 fehl, was einen anderen Ansatz erfordert.",[488,4771,4772],{},"Fügen Sie Folgendes zum Caddyfile hinzu:",[926,4774,4776],{"className":1346,"code":4775,"language":1348,"meta":425,"style":425},"{\n  acme_dns cloudflare {env.CLOUDFLARE_API_TOKEN}\n}\n",[495,4777,4778,4782,4795],{"__ignoreMap":425},[934,4779,4780],{"class":936,"line":937},[934,4781,2919],{"class":948},[934,4783,4784,4787,4790,4793],{"class":936,"line":1064},[934,4785,4786],{"class":1048},"  acme_dns cloudflare",[934,4788,4789],{"class":948}," {",[934,4791,4792],{"class":1048},"env.CLOUDFLARE_API_TOKEN",[934,4794,2927],{"class":948},[934,4796,4797],{"class":936,"line":1071},[934,4798,2927],{"class":948},[485,4800,4801],{},[488,4802,4803],{},"Erstellen Sie eine Dockerfile.caddy mit dem folgenden Inhalt, der für compose.caddy.yml erforderlich ist:",[926,4805,4807],{"className":1346,"code":4806,"language":1348,"meta":425,"style":425},"FROM caddy:2-builder AS builder\n\nRUN xcaddy build \\\n    --with github.com\u002Fcaddy-dns\u002Fcloudflare\n\nFROM caddy:2-alpine\n\nCOPY --from=builder \u002Fusr\u002Fbin\u002Fcaddy \u002Fusr\u002Fbin\u002Fcaddy\n",[495,4808,4809,4814,4818,4823,4828,4832,4837,4841],{"__ignoreMap":425},[934,4810,4811],{"class":936,"line":937},[934,4812,4813],{"class":1048},"FROM caddy:2-builder AS builder\n",[934,4815,4816],{"class":936,"line":1064},[934,4817,1068],{"emptyLinePlaceholder":1067},[934,4819,4820],{"class":936,"line":1071},[934,4821,4822],{"class":1048},"RUN xcaddy build \\\n",[934,4824,4825],{"class":936,"line":1078},[934,4826,4827],{"class":1048},"    --with github.com\u002Fcaddy-dns\u002Fcloudflare\n",[934,4829,4830],{"class":936,"line":1927},[934,4831,1068],{"emptyLinePlaceholder":1067},[934,4833,4834],{"class":936,"line":1932},[934,4835,4836],{"class":1048},"FROM caddy:2-alpine\n",[934,4838,4839],{"class":936,"line":1938},[934,4840,1068],{"emptyLinePlaceholder":1067},[934,4842,4843],{"class":936,"line":2275},[934,4844,4845],{"class":1048},"COPY --from=builder \u002Fusr\u002Fbin\u002Fcaddy \u002Fusr\u002Fbin\u002Fcaddy\n",[485,4847,4848],{},[488,4849,4850,4851,4854],{},"Ändern Sie ",[495,4852,4853],{},"compose.caddy.yml",", um das Image mit dem Cloudflare-Modul zu verwenden und das Cloudflare-API-Token zu übergeben:",[926,4856,4858],{"className":1346,"code":4857,"language":1348,"meta":425,"style":425},"services:\n  relay:\n    ports: !reset []\n\n  caddy:\n    build:\n      context: .\n      dockerfile: Dockerfile.caddy\n    image: buzz-caddy:cloudflare\n    depends_on:\n      relay:\n        condition: service_healthy\n    environment:\n      BUZZ_DOMAIN: ${BUZZ_DOMAIN:?set BUZZ_DOMAIN}\n      CLOUDFLARE_API_TOKEN: ${CLOUDFLARE_API_TOKEN:?set CLOUDFLARE_API_TOKEN}\n    ports:\n      - \"${CADDY_HTTP_PORT:-80}:80\"\n      - \"${CADDY_HTTPS_PORT:-443}:443\"\n    volumes:\n      - .\u002FCaddyfile:\u002Fetc\u002Fcaddy\u002FCaddyfile:ro\n      - buzz-caddy-data:\u002Fdata\n      - buzz-caddy-config:\u002Fconfig\n    restart: unless-stopped\n    networks:\n      - buzz-net\n\nvolumes:\n  buzz-caddy-data:\n    labels:\n      com.buzz.volume: caddy-data\n  buzz-caddy-config:\n    labels:\n      com.buzz.volume: caddy-config\n",[495,4859,4860,4866,4873,4885,4889,4896,4903,4913,4923,4932,4939,4946,4956,4962,4972,4982,4988,4999,5010,5016,5023,5030,5037,5046,5054,5062,5067,5074,5082,5090,5101,5109,5116],{"__ignoreMap":425},[934,4861,4862,4864],{"class":936,"line":937},[934,4863,3258],{"class":1358},[934,4865,1372],{"class":948},[934,4867,4868,4871],{"class":936,"line":1064},[934,4869,4870],{"class":1358},"  relay",[934,4872,1372],{"class":948},[934,4874,4875,4877,4879,4882],{"class":936,"line":1071},[934,4876,3282],{"class":1358},[934,4878,891],{"class":948},[934,4880,4881],{"class":940}," !reset",[934,4883,4884],{"class":948}," []\n",[934,4886,4887],{"class":936,"line":1078},[934,4888,1068],{"emptyLinePlaceholder":1067},[934,4890,4891,4894],{"class":936,"line":1927},[934,4892,4893],{"class":1358},"  caddy",[934,4895,1372],{"class":948},[934,4897,4898,4901],{"class":936,"line":1932},[934,4899,4900],{"class":1358},"    build",[934,4902,1372],{"class":948},[934,4904,4905,4908,4910],{"class":936,"line":1938},[934,4906,4907],{"class":1358},"      context",[934,4909,891],{"class":948},[934,4911,4912],{"class":2964}," .\n",[934,4914,4915,4918,4920],{"class":936,"line":2275},[934,4916,4917],{"class":1358},"      dockerfile",[934,4919,891],{"class":948},[934,4921,4922],{"class":1048}," Dockerfile.caddy\n",[934,4924,4925,4927,4929],{"class":936,"line":2286},[934,4926,3272],{"class":1358},[934,4928,891],{"class":948},[934,4930,4931],{"class":1048}," buzz-caddy:cloudflare\n",[934,4933,4934,4937],{"class":936,"line":1699},[934,4935,4936],{"class":1358},"    depends_on",[934,4938,1372],{"class":948},[934,4940,4941,4944],{"class":936,"line":2387},[934,4942,4943],{"class":1358},"      relay",[934,4945,1372],{"class":948},[934,4947,4948,4951,4953],{"class":936,"line":2393},[934,4949,4950],{"class":1358},"        condition",[934,4952,891],{"class":948},[934,4954,4955],{"class":1048}," service_healthy\n",[934,4957,4958,4960],{"class":936,"line":2398},[934,4959,3302],{"class":1358},[934,4961,1372],{"class":948},[934,4963,4964,4967,4969],{"class":936,"line":2404},[934,4965,4966],{"class":1358},"      BUZZ_DOMAIN",[934,4968,891],{"class":948},[934,4970,4971],{"class":1048}," ${BUZZ_DOMAIN:?set BUZZ_DOMAIN}\n",[934,4973,4974,4977,4979],{"class":936,"line":3361},[934,4975,4976],{"class":1358},"      CLOUDFLARE_API_TOKEN",[934,4978,891],{"class":948},[934,4980,4981],{"class":1048}," ${CLOUDFLARE_API_TOKEN:?set CLOUDFLARE_API_TOKEN}\n",[934,4983,4984,4986],{"class":936,"line":3372},[934,4985,3282],{"class":1358},[934,4987,1372],{"class":948},[934,4989,4990,4992,4994,4997],{"class":936,"line":3377},[934,4991,3289],{"class":948},[934,4993,3292],{"class":948},[934,4995,4996],{"class":1048},"${CADDY_HTTP_PORT:-80}:80",[934,4998,1959],{"class":948},[934,5000,5001,5003,5005,5008],{"class":936,"line":3385},[934,5002,3289],{"class":948},[934,5004,3292],{"class":948},[934,5006,5007],{"class":1048},"${CADDY_HTTPS_PORT:-443}:443",[934,5009,1959],{"class":948},[934,5011,5012,5014],{"class":936,"line":3917},[934,5013,3335],{"class":1358},[934,5015,1372],{"class":948},[934,5017,5018,5020],{"class":936,"line":3923},[934,5019,3289],{"class":948},[934,5021,5022],{"class":1048}," .\u002FCaddyfile:\u002Fetc\u002Fcaddy\u002FCaddyfile:ro\n",[934,5024,5025,5027],{"class":936,"line":3932},[934,5026,3289],{"class":948},[934,5028,5029],{"class":1048}," buzz-caddy-data:\u002Fdata\n",[934,5031,5032,5034],{"class":936,"line":4584},[934,5033,3289],{"class":948},[934,5035,5036],{"class":1048}," buzz-caddy-config:\u002Fconfig\n",[934,5038,5040,5042,5044],{"class":936,"line":5039},23,[934,5041,3364],{"class":1358},[934,5043,891],{"class":948},[934,5045,3369],{"class":1048},[934,5047,5049,5052],{"class":936,"line":5048},24,[934,5050,5051],{"class":1358},"    networks",[934,5053,1372],{"class":948},[934,5055,5057,5059],{"class":936,"line":5056},25,[934,5058,3289],{"class":948},[934,5060,5061],{"class":1048}," buzz-net\n",[934,5063,5065],{"class":936,"line":5064},26,[934,5066,1068],{"emptyLinePlaceholder":1067},[934,5068,5070,5072],{"class":936,"line":5069},27,[934,5071,3380],{"class":1358},[934,5073,1372],{"class":948},[934,5075,5077,5080],{"class":936,"line":5076},28,[934,5078,5079],{"class":1358},"  buzz-caddy-data",[934,5081,1372],{"class":948},[934,5083,5085,5088],{"class":936,"line":5084},29,[934,5086,5087],{"class":1358},"    labels",[934,5089,1372],{"class":948},[934,5091,5093,5096,5098],{"class":936,"line":5092},30,[934,5094,5095],{"class":1358},"      com.buzz.volume",[934,5097,891],{"class":948},[934,5099,5100],{"class":1048}," caddy-data\n",[934,5102,5104,5107],{"class":936,"line":5103},31,[934,5105,5106],{"class":1358},"  buzz-caddy-config",[934,5108,1372],{"class":948},[934,5110,5112,5114],{"class":936,"line":5111},32,[934,5113,5087],{"class":1358},[934,5115,1372],{"class":948},[934,5117,5119,5121,5123],{"class":936,"line":5118},33,[934,5120,5095],{"class":1358},[934,5122,891],{"class":948},[934,5124,5125],{"class":1048}," caddy-config\n",[2162,5127,5129],{"id":5128},"docker-container-starten","Docker-Container starten",[926,5131,5133],{"className":1035,"code":5132,"language":1037,"meta":425,"style":425},"docker compose -f compose.yml -f compose.caddy.yml up -d\n\n#Check the Docker status\ndocker compose ps\n",[495,5134,5135,5155,5159,5164],{"__ignoreMap":425},[934,5136,5137,5139,5141,5143,5146,5148,5151,5153],{"class":936,"line":937},[934,5138,1178],{"class":1044},[934,5140,1181],{"class":1048},[934,5142,3444],{"class":1048},[934,5144,5145],{"class":1048}," compose.yml",[934,5147,3444],{"class":1048},[934,5149,5150],{"class":1048}," compose.caddy.yml",[934,5152,2986],{"class":1048},[934,5154,2989],{"class":1048},[934,5156,5157],{"class":936,"line":1064},[934,5158,1068],{"emptyLinePlaceholder":1067},[934,5160,5161],{"class":936,"line":1071},[934,5162,5163],{"class":1074},"#Check the Docker status\n",[934,5165,5166,5168,5170],{"class":936,"line":1078},[934,5167,1178],{"class":1044},[934,5169,1181],{"class":1048},[934,5171,5172],{"class":1048}," ps\n",[433,5174],{"src":5175,"alt":5176,"style":5177},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fdocker-compose-ps-status-terminal.webp","Terminalfenster mit laufenden Containern für Buzz-Dienste über docker compose ps","max-width: 700px; width: 100%; height: auto;",[430,5179,5180,5181,5184],{},"Öffnen Sie Ihren Webbrowser und navigieren Sie zu ",[495,5182,5183],{},"http:\u002F\u002Fbuzz.pafor.me",", um zu überprüfen, ob das Relay läuft.",[433,5186],{"src":5187,"alt":5188,"style":3123},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-relay-running-browser-verification.webp","Browser-Verifizierung mit erfolgreicher Antwort des selbst gehosteten Block's Buzz-Relays",[881,5190,5192],{"id":5191},"schritt-5-backup-von-tag-eins-an-einrichten","Schritt 5: Backup von Tag eins an einrichten",[926,5194,5196],{"className":1035,"code":5195,"language":1037,"meta":425,"style":425},"mkdir -p \u002Fbuzz_backups\ncrontab -e\n",[495,5197,5198,5209],{"__ignoreMap":425},[934,5199,5200,5203,5206],{"class":936,"line":937},[934,5201,5202],{"class":1044},"mkdir",[934,5204,5205],{"class":1048}," -p",[934,5207,5208],{"class":1048}," \u002Fbuzz_backups\n",[934,5210,5211,5214],{"class":936,"line":1064},[934,5212,5213],{"class":1044},"crontab",[934,5215,5216],{"class":1048}," -e\n",[430,5218,5219],{},"Einen nächtlichen Datenbank-Dump-Cronjob hinzufügen:",[926,5221,5224],{"className":5222,"code":5223,"language":4654},[4652],"0 3 * * * cd \u002Fhome\u002F\u003Cuser>\u002Fbuzz\u002Fdeploy\u002Fcompose && docker compose exec -T postgres pg_dump -U buzz buzz > \u002Fbuzz_backups\u002Fbuzz-$(date +\\%Y\\%m\\%d).sql\n",[495,5225,5223],{"__ignoreMap":425},[430,5227,5228],{},"Hinweis: Behandeln Sie BUZZ_RELAY_PRIVATE_KEY als permanent. Events, die damit signiert wurden, schlagen bei der Verifizierung fehl, wenn sich der Schlüssel ändert; eine wiederhergestellte Datenbank gepaart mit einem neuen Schlüssel wird nicht als dasselbe Relay behandelt.",[474,5230,5232],{"id":5231},"einrichtung-des-buzz-desktop-clients-und-der-nostr-identitäten","Einrichtung des Buzz-Desktop-Clients und der Nostr-Identitäten",[430,5234,5235,5236,5240],{},"Laden Sie die Buzz-Desktop-App von ",[444,5237,5238],{"href":5238,"rel":5239},"https:\u002F\u002Fgithub.com\u002Fblock\u002Fbuzz\u002Freleases",[448]," herunter und starten Sie sie. Füllen Sie die Profildetails aus, bis Sie die Seite \"Join or create a community\" erreichen.",[430,5242,5243],{},[433,5244],{"alt":5245,"src":5246},"Ersteinrichtungsbildschirm des Buzz-Desktop-Clients zum Beitreten oder Erstellen einer Community","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-setup-community.webp",[430,5248,5249],{},"Klicken Sie auf \"Join a community\" und kopieren Sie Ihren öffentlichen Schlüssel.",[430,5251,5252],{},[433,5253],{"alt":5254,"src":5255},"Buzz-Client-Anzeige mit der öffentlichen Schlüssel-Identität vor dem Beitritt zur Community","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-join-community-public-key.webp",[430,5257,5258,5259,5261],{},"Führen Sie den folgenden Befehl auf dem ",[441,5260,2696],{}," aus, um sich selbst als erstes Mitglied hinzuzufügen:",[926,5263,5265],{"className":1035,"code":5264,"language":1037,"meta":425,"style":425},"docker compose exec relay buzz-admin add-member --pubkey npub1yourkeyhere\n",[495,5266,5267],{"__ignoreMap":425},[934,5268,5269,5271,5273,5275,5277,5279,5281,5283],{"class":936,"line":937},[934,5270,1178],{"class":1044},[934,5272,1181],{"class":1048},[934,5274,1184],{"class":1048},[934,5276,1187],{"class":1048},[934,5278,1190],{"class":1048},[934,5280,1193],{"class":1048},[934,5282,1196],{"class":1048},[934,5284,5285],{"class":1048}," npub1yourkeyhere\n",[430,5287,3196,5288,5291],{},[495,5289,5290],{},"wss:\u002F\u002Fbuzz.pafor.me"," als Community-URL hinzu und klicken Sie auf \"Next\".",[430,5293,5294],{},[433,5295],{"alt":5296,"src":5297},"Eingabe der selbst gehosteten Community-Relay-URL in der Buzz-Desktop-App","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-input-community-url.webp",[430,5299,5300],{},"Geben Sie einen Namen ein und klicken Sie auf die Schaltfläche Next.",[430,5302,5303],{},[433,5304],{"alt":5305,"src":5306},"Profilkonfigurationsbildschirm in der Buzz-App zur Eingabe des Anzeigenamens","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-profile-name-input.webp",[881,5308,5310],{"id":5309},"kanäle-channels-und-agenten","Kanäle (Channels) und Agenten",[430,5312,5313],{},"Kanäle sind Aufgabengruppen oder Projektgruppen. Erstellen Sie einen Kanal pro Aufgabe oder Projekt und laden Sie Menschen und Agenten hinein.",[430,5315,5316],{},"Alles innerhalb eines Kanals wird automatisch geteilt, sodass kein Mitglied einzeln instruiert werden muss. Jeder Agent kann über @ erwähnt werden und liest die relevanten Nachrichten. Zudem können Agenten sich gegenseitig per @ erwähnen.",[430,5318,5319],{},"Senden wir eine DM an einen vorkonfigurierten Agenten",[430,5321,5322],{},[433,5323],{"alt":5324,"src":5325},"Senden einer Direktnachricht an einen KI-Agenten im kollaborativen Buzz-Desktop-Client","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-dm-agent.webp",[430,5327,5328],{},"Erstellen wir einen Kanal und fügen einige Agenten hinzu",[430,5330,5331],{},[433,5332],{"alt":5333,"src":5334},"Erstellen eines neuen Aufgaben- oder Projektkanals in der Buzz-Desktop-App","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-create-channel-dialog.webp",[430,5336,5337],{},[433,5338],{"alt":5339,"src":5340},"Hinzufügen von menschlichen Mitgliedern und KI-Agenten zum neu erstellten Kanal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-add-agents-to-channel.webp",[430,5342,5343],{},[433,5344],{"alt":5345,"src":5346},"Aktive Kanalansicht mit konsolidiertem Chat-Verlauf und Projektaufgaben","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-channel-view.webp",[433,5348],{"src":5349,"alt":5350,"style":5351},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-channel-active-agents.webp","Detailansicht der aktiven KI-Agenten, die in den kollaborativen Projektkanal integriert sind","max-width: 367px; width: 100%; height: auto;",[881,5353,5355],{"id":5354},"agenten-runtimes-aktivieren","Agenten-Runtimes aktivieren",[430,5357,5358,5359,5362,5363,5366],{},"Vordefinierte Runtimes verlassen sich auf die automatische Erkennung, die Start-Binärdateien (z. B. ",[495,5360,5361],{},"hermes-acp",") in Standardverzeichnissen wie ",[495,5364,5365],{},"~\u002F.local\u002Fbin"," sucht. Wenn ein Tool an einem nicht standardmäßigen Speicherort installiert wurde, kann Buzz es nicht auflösen.",[430,5368,5369,5370,5373],{},"Für Kimi Code lautet die Agenten-ID kimi, und Buzz sucht nach der Binärdatei unter ",[495,5371,5372],{},"~\u002F.local\u002Fbin\u002Fkimi",". Ein symbolischer Link erledigt die Arbeit:",[926,5375,5378],{"className":5376,"code":5377,"language":4654},[4652],"ln -s kimi-cli \u002FUsers\u002F\u003Cuser>\u002F.local\u002Fbin\u002Fkimi\n",[495,5379,5377],{"__ignoreMap":425},[430,5381,5382],{},"Kimi Code erscheint nun unter den Agenten-Runtimes.",[430,5384,5385],{},[433,5386],{"alt":5387,"src":5388},"Buzz-Anwendungseinstellungen mit konfigurierten KI-Agenten-Runtimes, einschließlich Kimi","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-settings-agent-runtimes-list.webp",[881,5390,5392],{"id":5391},"projekte-und-repositories","Projekte und Repositories",[430,5394,5395,5396,5399],{},"Aktivieren Sie zuerst die Funktion '",[441,5397,5398],{},"Projects","' unter Settings → Experiments:",[430,5401,5402],{},[433,5403],{"alt":5404,"src":5405},"Aktivieren der experimentellen Projects-Funktion in den Buzz-Einstellungen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-settings-experiments-projects.webp",[430,5407,5408,5409,5411],{},"Derzeit muss ein Projekt mit dem ",[495,5410,1208],{}," erstellt werden (obwohl die direkte Projekterstellung über die Benutzeroberfläche für ein zukünftiges Release geplant ist).",[2162,5413,5415],{"id":5414},"installieren-des-buzz-cli","Installieren des buzz-cli",[430,5417,5418,5419,5421,5422,5424],{},"Führen Sie die folgenden Befehle aus, um ",[495,5420,1208],{}," auf dem ",[441,5423,2696],{}," zu installieren:",[926,5426,5428],{"className":1035,"code":5427,"language":1037,"meta":425,"style":425},"sudo apt install cargo\ncd ~\u002Fbuzz\ncargo install --path crates\u002Fbuzz-cli\necho 'export PATH=\"$HOME\u002F.cargo\u002Fbin:$PATH\"' >> ~\u002F.bashrc && source ~\u002F.bashrc\n",[495,5429,5430,5441,5448,5461],{"__ignoreMap":425},[934,5431,5432,5434,5436,5438],{"class":936,"line":937},[934,5433,1895],{"class":1044},[934,5435,4486],{"class":1048},[934,5437,4507],{"class":1048},[934,5439,5440],{"class":1048}," cargo\n",[934,5442,5443,5445],{"class":936,"line":1064},[934,5444,2820],{"class":965},[934,5446,5447],{"class":1048}," ~\u002Fbuzz\n",[934,5449,5450,5453,5455,5458],{"class":936,"line":1071},[934,5451,5452],{"class":1044},"cargo",[934,5454,4507],{"class":1048},[934,5456,5457],{"class":1048}," --path",[934,5459,5460],{"class":1048}," crates\u002Fbuzz-cli\n",[934,5462,5463,5465,5468,5471,5474,5477,5480,5483,5486],{"class":936,"line":1078},[934,5464,4433],{"class":965},[934,5466,5467],{"class":948}," '",[934,5469,5470],{"class":1048},"export PATH=\"$HOME\u002F.cargo\u002Fbin:$PATH\"",[934,5472,5473],{"class":948},"'",[934,5475,5476],{"class":948}," >>",[934,5478,5479],{"class":1048}," ~\u002F.bashrc",[934,5481,5482],{"class":948}," &&",[934,5484,5485],{"class":965}," source",[934,5487,5488],{"class":1048}," ~\u002F.bashrc\n",[430,5490,5491,5492,5495,5496,5498,5499,5501],{},"Generieren Sie ein Paar aus privatem und öffentlichem Schlüssel mit dem ",[444,5493,4681],{"href":5494},"\u002Fde\u002Ftools\u002Fnostr-key-generator"," oder dem ",[495,5497,1208],{},". Dieses Paar ist die Identität des ",[495,5500,1208],{}," im Nostr-Relay.",[926,5503,5505],{"className":1035,"code":5504,"language":1037,"meta":425,"style":425},"docker run --rm --entrypoint \u002Fusr\u002Flocal\u002Fbin\u002Fbuzz-admin ghcr.io\u002Fblock\u002Fbuzz:main generate-key\n\n# Use the generated Public Key\ndocker compose exec relay buzz-admin add-member --pubkey generated_Public_key\n",[495,5506,5507,5529,5533,5538],{"__ignoreMap":425},[934,5508,5509,5511,5514,5517,5520,5523,5526],{"class":936,"line":937},[934,5510,1178],{"class":1044},[934,5512,5513],{"class":1048}," run",[934,5515,5516],{"class":1048}," --rm",[934,5518,5519],{"class":1048}," --entrypoint",[934,5521,5522],{"class":1048}," \u002Fusr\u002Flocal\u002Fbin\u002Fbuzz-admin",[934,5524,5525],{"class":1048}," ghcr.io\u002Fblock\u002Fbuzz:main",[934,5527,5528],{"class":1048}," generate-key\n",[934,5530,5531],{"class":936,"line":1064},[934,5532,1068],{"emptyLinePlaceholder":1067},[934,5534,5535],{"class":936,"line":1071},[934,5536,5537],{"class":1074},"# Use the generated Public Key\n",[934,5539,5540,5542,5544,5546,5548,5550,5552,5554],{"class":936,"line":1078},[934,5541,1178],{"class":1044},[934,5543,1181],{"class":1048},[934,5545,1184],{"class":1048},[934,5547,1187],{"class":1048},[934,5549,1190],{"class":1048},[934,5551,1193],{"class":1048},[934,5553,1196],{"class":1048},[934,5555,5556],{"class":1048}," generated_Public_key\n",[430,5558,5559],{},"Konfigurieren Sie die CLI:",[926,5561,5563],{"className":1035,"code":5562,"language":1037,"meta":425,"style":425},"# Copy the Secret key as the BUZZ_PRIVATE_KEY\necho 'export BUZZ_PRIVATE_KEY=\"nsec1...\"'  >> \u002Fhome\u002F\u003Cuser>\u002F.bashrc\n\necho 'export BUZZ_RELAY_URL=\"wss:\u002F\u002Fbuzz.pafor.me\"'  >> \u002Fhome\u002F\u003Cuser>\u002F.bashrc\n",[495,5564,5565,5570,5601,5605],{"__ignoreMap":425},[934,5566,5567],{"class":936,"line":937},[934,5568,5569],{"class":1074},"# Copy the Secret key as the BUZZ_PRIVATE_KEY\n",[934,5571,5572,5574,5576,5579,5581,5584,5587,5590,5593,5596,5598],{"class":936,"line":1064},[934,5573,4433],{"class":965},[934,5575,5467],{"class":948},[934,5577,5578],{"class":1048},"export BUZZ_PRIVATE_KEY=\"nsec1...\"",[934,5580,5473],{"class":948},[934,5582,5583],{"class":948},"  >>",[934,5585,5586],{"class":1048}," \u002Fhome\u002F",[934,5588,5589],{"class":948},"\u003C",[934,5591,5592],{"class":1048},"use",[934,5594,5595],{"class":944},"r",[934,5597,1251],{"class":948},[934,5599,5600],{"class":1048},"\u002F.bashrc\n",[934,5602,5603],{"class":936,"line":1071},[934,5604,1068],{"emptyLinePlaceholder":1067},[934,5606,5607,5609,5611,5614,5616,5618,5620,5622,5624,5626,5628],{"class":936,"line":1078},[934,5608,4433],{"class":965},[934,5610,5467],{"class":948},[934,5612,5613],{"class":1048},"export BUZZ_RELAY_URL=\"wss:\u002F\u002Fbuzz.pafor.me\"",[934,5615,5473],{"class":948},[934,5617,5583],{"class":948},[934,5619,5586],{"class":1048},[934,5621,5589],{"class":948},[934,5623,5592],{"class":1048},[934,5625,5595],{"class":944},[934,5627,1251],{"class":948},[934,5629,5600],{"class":1048},[430,5631,5632,5633,5635],{},"Führen Sie den folgenden Befehl aus, um zu überprüfen, ob das ",[495,5634,1208],{}," ordnungsgemäß konfiguriert ist:",[926,5637,5639],{"className":1035,"code":5638,"language":1037,"meta":425,"style":425},"buzz channels list\n",[495,5640,5641],{"__ignoreMap":425},[934,5642,5643,5645,5647],{"class":936,"line":937},[934,5644,1231],{"class":1044},[934,5646,1234],{"class":1048},[934,5648,5649],{"class":1048}," list\n",[430,5651,5652],{},[433,5653],{"alt":5654,"src":5655},"Terminal-Befehlsausführung zur Überprüfung der buzz-cli-Konfiguration durch Auflistung aktiver Kanäle","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-cli-channels-list-terminal.webp",[2162,5657,5659],{"id":5658},"ein-projekt-mit-dem-buzz-cli-erstellen","Ein Projekt mit dem buzz-cli erstellen",[926,5661,5663],{"className":1035,"code":5662,"language":1037,"meta":425,"style":425},"# --channel refers to the UUID of the channel\nbuzz repos create --id TestKOA --name 'Display Name' --channel \"bd92b3d1-8fac-441c-a9ac-2b2f3aac5c5b\"\n",[495,5664,5665,5670],{"__ignoreMap":425},[934,5666,5667],{"class":936,"line":937},[934,5668,5669],{"class":1074},"# --channel refers to the UUID of the channel\n",[934,5671,5672,5674,5677,5680,5683,5686,5689,5691,5694,5696,5698,5700,5703],{"class":936,"line":1064},[934,5673,1231],{"class":1044},[934,5675,5676],{"class":1048}," repos",[934,5678,5679],{"class":1048}," create",[934,5681,5682],{"class":1048}," --id",[934,5684,5685],{"class":1048}," TestKOA",[934,5687,5688],{"class":1048}," --name",[934,5690,5467],{"class":948},[934,5692,5693],{"class":1048},"Display Name",[934,5695,5473],{"class":948},[934,5697,1239],{"class":1048},[934,5699,3292],{"class":948},[934,5701,5702],{"class":1048},"bd92b3d1-8fac-441c-a9ac-2b2f3aac5c5b",[934,5704,1959],{"class":948},[430,5706,5707,5708,5710],{},"Ein Projekt kann nur von seinem Besitzer entfernt werden. Da das Projekt \"Display Name\" über das ",[495,5709,1208],{}," erstellt wurde, welches keinen Löschbefehl besitzt, kann es auf diese Weise nicht gelöscht werden.",[430,5712,5713],{},"Prüfen Sie in der Buzz-Desktop-App nach, ob das Projekt erstellt wurde.",[430,5715,5716],{},[433,5717],{"alt":5718,"src":5719},"Projektansicht der Buzz-Desktop-Anwendung zur Bestätigung der erfolgreichen Projekterstellung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-project-view.webp",[430,5721,5722],{},"Sobald ein Projekt in Projects verfügbar ist, können weitere Projekte über die Schaltfläche \"+\" in der oberen rechten Ecke hinzugefügt werden.",[430,5724,5725],{},[433,5726],{"alt":5727,"src":5728},"Hinzufügen neuer Entwicklerprojekte über das Plus-Symbol im Buzz-Desktop-Client","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-add-project-button.webp",[2162,5730,5732],{"id":5731},"bestehende-git-repositories-einbinden","Bestehende Git-Repositories einbinden",[430,5734,2532,5735,5738,5739,5742,5743,891],{},[495,5736,5737],{},"git-credential-nostr"," auf dem Rechner, auf dem sich die Git-Repositories befinden. Es erfordert ",[441,5740,5741],{},"Git 2.46+"," und die Rust-Toolchain. Beziehen Sie sich auf diese ",[444,5744,5747],{"href":5745,"rel":5746},"https:\u002F\u002Fgithub.com\u002Fblock\u002Fbuzz\u002Ftree\u002Fmain\u002Fcrates\u002Fgit-credential-nostr",[448],"Readme",[926,5749,5751],{"className":1035,"code":5750,"language":1037,"meta":425,"style":425},"cargo install --path crates\u002Fgit-credential-nostr\n",[495,5752,5753],{"__ignoreMap":425},[934,5754,5755,5757,5759,5761],{"class":936,"line":937},[934,5756,5452],{"class":1044},[934,5758,4507],{"class":1048},[934,5760,5457],{"class":1048},[934,5762,5763],{"class":1048}," crates\u002Fgit-credential-nostr\n",[430,5765,5766,5767,5769],{},"Richten Sie ",[495,5768,5737],{}," für die Buzz-Relay-Autorisierung ein:",[926,5771,5773],{"className":1035,"code":5772,"language":1037,"meta":425,"style":425},"# 1. Register the helper and enable per-path credentials.\ngit config --global credential.helper nostr\ngit config --global credential.useHttpPath true\n\n# 2. Store your nsec in a key file (must be 0600). Replace \"nsec1...\" with your private key\nmkdir -p ~\u002F.nostr\necho \"nsec1...\" > ~\u002F.nostr\u002Fkey && chmod 600 ~\u002F.nostr\u002Fkey\ngit config --global nostr.keyfile ~\u002F.nostr\u002Fkey\n",[495,5774,5775,5780,5796,5809,5813,5818,5827,5854],{"__ignoreMap":425},[934,5776,5777],{"class":936,"line":937},[934,5778,5779],{"class":1074},"# 1. Register the helper and enable per-path credentials.\n",[934,5781,5782,5784,5787,5790,5793],{"class":936,"line":1064},[934,5783,2796],{"class":1044},[934,5785,5786],{"class":1048}," config",[934,5788,5789],{"class":1048}," --global",[934,5791,5792],{"class":1048}," credential.helper",[934,5794,5795],{"class":1048}," nostr\n",[934,5797,5798,5800,5802,5804,5807],{"class":936,"line":1071},[934,5799,2796],{"class":1044},[934,5801,5786],{"class":1048},[934,5803,5789],{"class":1048},[934,5805,5806],{"class":1048}," credential.useHttpPath",[934,5808,1383],{"class":948},[934,5810,5811],{"class":936,"line":1078},[934,5812,1068],{"emptyLinePlaceholder":1067},[934,5814,5815],{"class":936,"line":1927},[934,5816,5817],{"class":1074},"# 2. Store your nsec in a key file (must be 0600). Replace \"nsec1...\" with your private key\n",[934,5819,5820,5822,5824],{"class":936,"line":1932},[934,5821,5202],{"class":1044},[934,5823,5205],{"class":1048},[934,5825,5826],{"class":1048}," ~\u002F.nostr\n",[934,5828,5829,5831,5833,5836,5838,5840,5843,5845,5848,5851],{"class":936,"line":1938},[934,5830,4433],{"class":965},[934,5832,3292],{"class":948},[934,5834,5835],{"class":1048},"nsec1...",[934,5837,3704],{"class":948},[934,5839,4467],{"class":948},[934,5841,5842],{"class":1048}," ~\u002F.nostr\u002Fkey",[934,5844,5482],{"class":948},[934,5846,5847],{"class":1044}," chmod",[934,5849,5850],{"class":2964}," 600",[934,5852,5853],{"class":1048}," ~\u002F.nostr\u002Fkey\n",[934,5855,5856,5858,5860,5862,5865],{"class":936,"line":2275},[934,5857,2796],{"class":1044},[934,5859,5786],{"class":1048},[934,5861,5789],{"class":1048},[934,5863,5864],{"class":1048}," nostr.keyfile",[934,5866,5853],{"class":1048},[430,5868,5869],{},"Erstellen Sie ein Repository auf dem Buzz-Relay:",[926,5871,5874],{"className":5872,"code":5873,"language":4654},[4652],"buzz repos create --id koa-email-routing --name \"KOA Email Routing\" --clone \"https:\u002F\u002Fbuzz.pafor.me\u002Fgit\u002F\u003Cpub_key>\u002Fkoa-email-routing\" --nostr-relay \"wss:\u002F\u002Fbuzz.pafor.me\"\n",[495,5875,5873],{"__ignoreMap":425},[430,5877,5878,5879,5882,5883,5886],{},"Bei Ihrem ersten ",[495,5880,5881],{},"git push"," stoßen Sie auf den Fehler ",[495,5884,5885],{},"remote: missing Authorization header",". Um dies zu beheben, müssen Sie die Repository-ID an einen Buzz-Kanal binden, da die Kanalmitgliedschaft die Git-Schreibrechte (ACLs) vorgibt:",[926,5888,5890],{"className":1035,"code":5889,"language":1037,"meta":425,"style":425},"buzz repos bind --id koa-email-routing --channel \u003CCHANNEL_UUID>\n\n# push the code again\ngit push\n",[495,5891,5892,5917,5921,5926],{"__ignoreMap":425},[934,5893,5894,5896,5898,5901,5903,5906,5908,5910,5912,5914],{"class":936,"line":937},[934,5895,1231],{"class":1044},[934,5897,5676],{"class":1048},[934,5899,5900],{"class":1048}," bind",[934,5902,5682],{"class":1048},[934,5904,5905],{"class":1048}," koa-email-routing",[934,5907,1239],{"class":1048},[934,5909,1242],{"class":948},[934,5911,1245],{"class":1048},[934,5913,1248],{"class":944},[934,5915,5916],{"class":948},">\n",[934,5918,5919],{"class":936,"line":1064},[934,5920,1068],{"emptyLinePlaceholder":1067},[934,5922,5923],{"class":936,"line":1071},[934,5924,5925],{"class":1074},"# push the code again\n",[934,5927,5928,5930],{"class":936,"line":1078},[934,5929,2796],{"class":1044},[934,5931,5932],{"class":1048}," push\n",[430,5934,5935,5936,5938],{},"Die Überprüfung des Projekts in der Buzz-Desktop-App zeigt Folgendes, da die App ",[441,5937,5741],{}," benötigt — das direkte Starten der App verwendet möglicherweise eine ältere Git-Version:",[430,5940,5941],{},[433,5942],{"alt":5943,"src":5944},"Buzz-Client zeigt Git-Ladefehler aufgrund einer veralteten lokalen Git-Version unter 2.46","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-git-version-error.webp",[430,5946,5947,5948,5951,5952,552],{},"Exportieren Sie den PATH über ",[495,5949,5950],{},"launchctl setenv PATH \"\u002Fopt\u002Fhomebrew\u002Fbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fbin:\u002Fbin:\u002Fusr\u002Fsbin:\u002Fsbin\""," im Shell-Profil und starten Sie die Buzz-App aus der Shell heraus. Beziehen Sie sich auf dieses ",[444,5953,5956],{"href":5954,"rel":5955},"https:\u002F\u002Fgithub.com\u002Fblock\u002Fbuzz\u002Fissues\u002F5348",[448],"Issue",[926,5958,5960],{"className":1035,"code":5959,"language":1037,"meta":425,"style":425},"open -a Buzz\n",[495,5961,5962],{"__ignoreMap":425},[934,5963,5964,5967,5970],{"class":936,"line":937},[934,5965,5966],{"class":1044},"open",[934,5968,5969],{"class":1048}," -a",[934,5971,5972],{"class":1048}," Buzz\n",[430,5974,5975],{},"Überprüfen Sie die Projects in der Buzz-App; die Repository-Details sind jetzt geladen.",[430,5977,5978],{},[433,5979],{"alt":5980,"src":5981},"Buzz-Desktop-Schnittstelle mit erfolgreich geladenen Git-Repository-Details und Commit-Logs","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-repository-details-loaded.webp",[474,5983,5985],{"id":5984},"ki-agenten-per-qr-code-mit-der-buzz-mobile-app-synchronisieren","KI-Agenten per QR-Code mit der Buzz Mobile App synchronisieren",[430,5987,5988,5989,5992],{},"Die Kopplung der Buzz Mobile App akzeptiert nur das HTTPS-Protokoll und das ",[495,5990,5991],{},"buzz-pair-relay"," wird auf dem VPS standardmäßig nicht gestartet.",[926,5994,5996],{"className":1035,"code":5995,"language":1037,"meta":425,"style":425},"cd ~\u002Fbuzz\ncargo install --path crates\u002Fbuzz-pair-relay\n",[495,5997,5998,6004],{"__ignoreMap":425},[934,5999,6000,6002],{"class":936,"line":937},[934,6001,2820],{"class":965},[934,6003,5447],{"class":1048},[934,6005,6006,6008,6010,6012],{"class":936,"line":1064},[934,6007,5452],{"class":1044},[934,6009,4507],{"class":1048},[934,6011,5457],{"class":1048},[934,6013,6014],{"class":1048}," crates\u002Fbuzz-pair-relay\n",[430,6016,6017,6018,6021,6022,6024],{},"Fügen Sie Folgendes zu ",[495,6019,6020],{},"compose.yml"," hinzu, um den ",[495,6023,5991],{},"-Dienst zu starten:",[926,6026,6028],{"className":1346,"code":6027,"language":1348,"meta":425,"style":425},"  pair:\n    image: ${BUZZ_IMAGE:-ghcr.io\u002Fblock\u002Fbuzz:main}\n    entrypoint: [\"\u002Fusr\u002Flocal\u002Fbin\u002Fbuzz-pair-relay\"]\n    environment:\n      BUZZ_PAIR_RELAY_BIND_ADDR: 0.0.0.0:5000\n    ports:\n      - \"${BUZZ_PAIR_RELAY_PORT:-5000}:5000\"\n    restart: unless-stopped\n    networks:\n      [buzz-net]\n",[495,6029,6030,6037,6046,6066,6072,6082,6088,6099,6107,6113],{"__ignoreMap":425},[934,6031,6032,6035],{"class":936,"line":937},[934,6033,6034],{"class":1358},"  pair",[934,6036,1372],{"class":948},[934,6038,6039,6041,6043],{"class":936,"line":1064},[934,6040,3272],{"class":1358},[934,6042,891],{"class":948},[934,6044,6045],{"class":1048}," ${BUZZ_IMAGE:-ghcr.io\u002Fblock\u002Fbuzz:main}\n",[934,6047,6048,6051,6053,6056,6058,6061,6063],{"class":936,"line":1071},[934,6049,6050],{"class":1358},"    entrypoint",[934,6052,891],{"class":948},[934,6054,6055],{"class":948}," [",[934,6057,3704],{"class":948},[934,6059,6060],{"class":1048},"\u002Fusr\u002Flocal\u002Fbin\u002Fbuzz-pair-relay",[934,6062,3704],{"class":948},[934,6064,6065],{"class":948},"]\n",[934,6067,6068,6070],{"class":936,"line":1078},[934,6069,3302],{"class":1358},[934,6071,1372],{"class":948},[934,6073,6074,6077,6079],{"class":936,"line":1927},[934,6075,6076],{"class":1358},"      BUZZ_PAIR_RELAY_BIND_ADDR",[934,6078,891],{"class":948},[934,6080,6081],{"class":1048}," 0.0.0.0:5000\n",[934,6083,6084,6086],{"class":936,"line":1932},[934,6085,3282],{"class":1358},[934,6087,1372],{"class":948},[934,6089,6090,6092,6094,6097],{"class":936,"line":1938},[934,6091,3289],{"class":948},[934,6093,3292],{"class":948},[934,6095,6096],{"class":1048},"${BUZZ_PAIR_RELAY_PORT:-5000}:5000",[934,6098,1959],{"class":948},[934,6100,6101,6103,6105],{"class":936,"line":2275},[934,6102,3364],{"class":1358},[934,6104,891],{"class":948},[934,6106,3369],{"class":1048},[934,6108,6109,6111],{"class":936,"line":2286},[934,6110,5051],{"class":1358},[934,6112,1372],{"class":948},[934,6114,6115,6118,6121],{"class":936,"line":1699},[934,6116,6117],{"class":948},"      [",[934,6119,6120],{"class":1048},"buzz-net",[934,6122,6065],{"class":948},[430,6124,3196,6125,576,6128,6131,6132,3482],{},[495,6126,6127],{},"BUZZ_PAIRING_RELAY_URL",[495,6129,6130],{},"BUZZ_PAIR_RELAY_PORT"," zur Datei ",[495,6133,2850],{},[926,6135,6138],{"className":6136,"code":6137,"language":4654},[4652],"BUZZ_PAIRING_RELAY_URL=wss:\u002F\u002Fbuzz.pafor.me\u002Fpair\nBUZZ_PAIR_RELAY_PORT=5000\n",[495,6139,6137],{"__ignoreMap":425},[430,6141,6142,6143,6146],{},"Gehen Sie in den Desktop-Einstellungen von Buzz zu '",[441,6144,6145],{},"Mobile","':",[430,6148,6149],{},[433,6150],{"alt":6151,"src":6152},"Einstellungsdialog in der Buzz-App mit der Registerkarte für Mobilgeräte-Konfiguration","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-settings-mobile-tab.webp",[430,6154,6155],{},"Klicken Sie auf \"Start pairing\" — ein QR-Code wird generiert. Scannen Sie diesen QR-Code mit der Buzz-App auf dem Mobilgerät. Die Geräte werden gekoppelt, nachdem Sie auf \"Code Match\" geklickt haben.",[430,6157,6158],{},[433,6159],{"alt":6160,"src":6161},"Generieren eines sicheren Kopplungs-QR-Codes im Desktop-Client für die Buzz-Mobil-Synchronisierung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-desktop-client-pairing-qr-code.webp",[430,6163,6164],{},"Die Agenten in der Buzz Mobile App sind verfügbar, wenn sie in der Buzz-Desktop-App ausgeführt werden. Der Desktop-Rechner muss laufen, damit die Agenten funktionieren.",[430,6166,6167],{},[433,6168],{"alt":6169,"src":6170},"Schnittstelle der Buzz-Mobil-App mit synchronisierten aktiven KI-Begleitagenten","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf-Hosting%20Buzz%20As%20The%20Workspace%20Where%20AI%20Agents%20Become%20Colleagues\u002Fbuzz-mobile-app-active-agents.webp",[474,6172,2575],{"id":2574},[430,6174,6175],{},"Obwohl Buzz für große Produktionsumgebungen aufgrund einiger Bugs und Einschränkungen in der Benutzeroberfläche noch zu früh ist, stellt es eine aufregende Erfahrung für kleine Teams und Solo-Entwickler dar. Es bietet einen Vorgeschmack darauf, wie sich ein kollaborativer, KI-zentrierter Workspace wirklich anfühlt.",[474,6177,4040],{"id":1614},[485,6179,6180,6187,6194,6201],{},[488,6181,6182],{},[444,6183,6186],{"href":6184,"rel":6185},"https:\u002F\u002Fgithub.com\u002Fblock\u002Fbuzz",[448],"Buzz releases",[488,6188,6189],{},[444,6190,6193],{"href":6191,"rel":6192},"https:\u002F\u002Fblock.xyz\u002Finside\u002Fintroducing-buzz-where-humans-and-agents-work-together",[448],"Introducing Buzz",[488,6195,6196],{},[444,6197,6200],{"href":6198,"rel":6199},"https:\u002F\u002Fwww.hostinger.com\u002Ftutorials\u002Fwhat-is-buzz",[448],"What is buzz",[488,6202,6203],{},[444,6204,6207],{"href":6205,"rel":6206},"https:\u002F\u002Fmiget.com\u002Fblog\u002Fhow-to-self-host-buzz",[448],"How to self-host Buzz (Miget)",[1643,6209,6210],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":425,"searchDepth":1064,"depth":1071,"links":6212},[6213,6214,6215,6229,6238,6239,6240],{"id":4130,"depth":1064,"text":4131},{"id":4175,"depth":1064,"text":4176},{"id":4223,"depth":1064,"text":4224,"children":6216},[6217,6218,6222,6223,6224,6228],{"id":4227,"depth":1071,"text":4228},{"id":4256,"depth":1071,"text":4257,"children":6219},[6220,6221],{"id":4260,"depth":1078,"text":4261},{"id":4359,"depth":1078,"text":4360},{"id":4377,"depth":1071,"text":4378},{"id":4594,"depth":1071,"text":4595},{"id":4740,"depth":1071,"text":4741,"children":6225},[6226,6227],{"id":4744,"depth":1078,"text":4745},{"id":5128,"depth":1078,"text":5129},{"id":5191,"depth":1071,"text":5192},{"id":5231,"depth":1064,"text":5232,"children":6230},[6231,6232,6233],{"id":5309,"depth":1071,"text":5310},{"id":5354,"depth":1071,"text":5355},{"id":5391,"depth":1071,"text":5392,"children":6234},[6235,6236,6237],{"id":5414,"depth":1078,"text":5415},{"id":5658,"depth":1078,"text":5659},{"id":5731,"depth":1078,"text":5732},{"id":5984,"depth":1064,"text":5985},{"id":2574,"depth":1064,"text":2575},{"id":1614,"depth":1064,"text":4040},[1664,1663,1231],"2026-09-08",{"schemaOrg":6244,"robots":1697,"sitemap":6263},[6245,6246],{"@type":1674,"headline":455,"description":465,"image":466},{"@type":1676,"name":455,"description":465,"image":466,"step":6247},[6248,6251,6254,6257,6260],{"@type":1679,"name":6249,"text":6250},"Phase 1: Cloudflare-Einrichtung","Erstellen Sie ein Cloudflare-API-Token und konfigurieren Sie die DNS-Einstellungen.",{"@type":1679,"name":6252,"text":6253},"Phase 2: Docker installieren","Richten Sie die Docker Engine auf dem Ubuntu-VPS ein.",{"@type":1679,"name":6255,"text":6256},"Phase 3: Klonen und konfigurieren","Klonen Sie das Repository und konfigurieren Sie die Compose-Variablen.",{"@type":1679,"name":6258,"text":6259},"Phase 4: Caddy-Integration","Erstellen Sie ein benutzerdefiniertes Caddy-Image mit dem Cloudflare-DNS-Modul.",{"@type":1679,"name":6261,"text":6262},"Phase 5: Automatische Sicherung","Konfigurieren Sie einen Cronjob zur automatischen Sicherung von PostgreSQL.",{"lastmod":6264},"2026-09-03",{"title":6266,"description":465,"ogTitle":455,"ogDescription":465,"twitterTitle":455,"twitterDescription":465},"Nostr-Relay Block's Buzz auf Ubuntu VPS selbst hosten","de\u002Farticle\u002Fself-hosting-buzz-as-the-workspace-where-ai-agents-become-colleagues",[1704,6269,1105,6270,6271],"Docker","Caddy","Cloudflare","gPrDB3p5pEk5T2URZ9nRmfiQOtv482xmqYWhLE65PI8",{"id":6274,"title":6275,"author":1706,"body":6276,"category":8143,"date":8145,"description":8146,"extension":1668,"image":8147,"imageAlt":8148,"isPublished":1067,"meta":8149,"minRead":4584,"navigation":1067,"path":17,"seo":8155,"stem":8156,"tags":8157,"updatedAt":6264,"__hash__":8159},"article\u002Fde\u002Farticle\u002Fself-hosted-travel-planner-trek.md","Hoste deine Reiseplanung selbst mit TREK und Docker",{"type":427,"value":6277,"toc":8102},[6278,6281,6284,6287,6291,6295,6437,6441,6447,6466,6469,6473,6577,6588,6591,6596,6599,6610,6614,6618,6621,6624,6657,6661,6664,6696,6699,6739,6742,6747,6759,6763,6770,6774,6777,6872,6876,6881,6885,6892,6896,6899,6917,6927,6931,6934,6945,6949,6953,6962,6966,6970,6973,6977,6981,6984,6989,6992,6997,7003,7007,7011,7014,7018,7031,7036,7042,7047,7051,7054,7059,7064,7067,7074,7078,7081,7084,7094,7101,7106,7113,7118,7122,7127,7132,7135,7140,7144,7150,7154,7159,7163,7166,7169,7174,7179,7184,7188,7195,7200,7205,7210,7215,7219,7224,7229,7235,7239,7242,7246,7252,7257,7262,7268,7273,7278,7283,7295,7299,7304,7324,7329,7332,7336,7339,7344,7347,7394,7398,7405,7411,7416,7422,7427,7433,7438,7444,7447,7452,7459,7464,7470,7474,7480,7485,7490,7494,7498,7501,7505,7508,7515,7519,7526,7530,7541,7545,7549,7553,7563,7572,7577,7584,7589,7596,7600,7603,7767,7774,7778,7781,7786,7789,7795,7799,7806,7810,7813,7818,7825,7830,7834,7844,7915,7931,7934,7939,7943,7947,7957,8033,8043,8046,8050,8054,8057,8059,8062,8065,8074,8076,8099],[430,6279,6280],{},"Der mühsame Teil der Reiseplanung besteht darin, dass PDF-Flugbuchungen, Hotelbestätigungen, Unterhaltungen mit Mitreisenden und Listen von Sehenswürdigkeiten an verschiedenen Orten verstreut sind. Wenn es dann an der Zeit ist, die Gesamtausgaben zu berechnen und die Rechnungen aufzuteilen, erfordert es enormen Aufwand, all diese Reisedaten zu durchforsten.",[430,6282,6283],{},"TREK ist ein Open-Source-Reiseplaner, der selbst gehostet werden kann und deine Reiseroute, Buchungen, dein Budget sowie Packlisten an einem einzigen Ort bündelt. Der integrierte MCP-Server ermöglicht es KI-Agents (wie Claude Desktop), Reisedaten direkt zu verwalten.",[430,6285,6286],{},"Dieser Leitfaden führt dich durch alle Schritte – vom Deployment bis hin zur vollständigen Verwaltung einer echten Reise von Anfang bis Ende.",[881,6288,6290],{"id":6289},"_1-so-deployst-du-den-trek-reiseplaner-mit-docker","1. So deployst du den TREK-Reiseplaner mit Docker",[2162,6292,6294],{"id":6293},"docker-auf-dem-ubuntu-vps-installieren","Docker auf dem Ubuntu-VPS installieren",[926,6296,6298],{"className":1035,"code":6297,"language":1037,"meta":425,"style":425},"# Add Docker's official GPG key and set up the Docker repository\ncurl -fsSL https:\u002F\u002Fdownload.docker.com\u002Flinux\u002Fubuntu\u002Fgpg | sudo gpg --dearmor -o \u002Fusr\u002Fshare\u002Fkeyrings\u002Fdocker-archive-keyring.gpg\n\n# Add the official Docker repository\necho \"deb [arch=amd64 signed-by=\u002Fusr\u002Fshare\u002Fkeyrings\u002Fdocker-archive-keyring.gpg] https:\u002F\u002Fdownload.docker.com\u002Flinux\u002Fubuntu $(lsb_release -cs) stable\" | sudo tee \u002Fetc\u002Fapt\u002Fsources.list.d\u002Fdocker.list > \u002Fdev\u002Fnull\n\n# Update package list\nsudo apt update\n\n# Install Docker Engine, Docker Community Edition, and containerd runtime\nsudo apt install docker-ce docker-ce-cli containerd.io -y\n\n# Verify docker is installed\ndocker --version\n\n# Starts automatically when your system boots\nsudo systemctl enable docker\n",[495,6299,6300,6304,6324,6328,6332,6364,6368,6372,6380,6384,6388,6404,6408,6412,6418,6422,6427],{"__ignoreMap":425},[934,6301,6302],{"class":936,"line":937},[934,6303,4391],{"class":1074},[934,6305,6306,6308,6310,6312,6314,6316,6318,6320,6322],{"class":936,"line":1064},[934,6307,2995],{"class":1044},[934,6309,4398],{"class":1048},[934,6311,4401],{"class":1048},[934,6313,4404],{"class":948},[934,6315,4407],{"class":1044},[934,6317,4410],{"class":1048},[934,6319,4413],{"class":1048},[934,6321,4416],{"class":1048},[934,6323,4419],{"class":1048},[934,6325,6326],{"class":936,"line":1071},[934,6327,1068],{"emptyLinePlaceholder":1067},[934,6329,6330],{"class":936,"line":1078},[934,6331,4428],{"class":1074},[934,6333,6334,6336,6338,6340,6342,6344,6346,6348,6350,6352,6354,6356,6358,6360,6362],{"class":936,"line":1927},[934,6335,4433],{"class":965},[934,6337,3292],{"class":948},[934,6339,4438],{"class":1048},[934,6341,4441],{"class":948},[934,6343,4444],{"class":1044},[934,6345,4447],{"class":1048},[934,6347,4450],{"class":948},[934,6349,4453],{"class":1048},[934,6351,3704],{"class":948},[934,6353,4404],{"class":948},[934,6355,4407],{"class":1044},[934,6357,3827],{"class":1048},[934,6359,4464],{"class":1048},[934,6361,4467],{"class":948},[934,6363,4470],{"class":1048},[934,6365,6366],{"class":936,"line":1932},[934,6367,1068],{"emptyLinePlaceholder":1067},[934,6369,6370],{"class":936,"line":1938},[934,6371,4479],{"class":1074},[934,6373,6374,6376,6378],{"class":936,"line":2275},[934,6375,1895],{"class":1044},[934,6377,4486],{"class":1048},[934,6379,4489],{"class":1048},[934,6381,6382],{"class":936,"line":2286},[934,6383,1068],{"emptyLinePlaceholder":1067},[934,6385,6386],{"class":936,"line":1699},[934,6387,4498],{"class":1074},[934,6389,6390,6392,6394,6396,6398,6400,6402],{"class":936,"line":2387},[934,6391,1895],{"class":1044},[934,6393,4486],{"class":1048},[934,6395,4507],{"class":1048},[934,6397,4510],{"class":1048},[934,6399,4513],{"class":1048},[934,6401,4516],{"class":1048},[934,6403,4519],{"class":1048},[934,6405,6406],{"class":936,"line":2393},[934,6407,1068],{"emptyLinePlaceholder":1067},[934,6409,6410],{"class":936,"line":2398},[934,6411,4548],{"class":1074},[934,6413,6414,6416],{"class":936,"line":2404},[934,6415,1178],{"class":1044},[934,6417,3627],{"class":1048},[934,6419,6420],{"class":936,"line":3361},[934,6421,1068],{"emptyLinePlaceholder":1067},[934,6423,6424],{"class":936,"line":3372},[934,6425,6426],{"class":1074},"# Starts automatically when your system boots\n",[934,6428,6429,6431,6433,6435],{"class":936,"line":3377},[934,6430,1895],{"class":1044},[934,6432,1898],{"class":1048},[934,6434,2025],{"class":1048},[934,6436,4539],{"class":1048},[2162,6438,6440],{"id":6439},"verschlüsselungsschlüssel-generieren","Verschlüsselungsschlüssel generieren",[430,6442,6443,6444,6446],{},"TREK verwendet einen Schlüssel zur Verschlüsselung sensibler Daten. Verwende den folgenden Befehl oder dieses ",[444,6445,4681],{"href":2871},", um den Verschlüsselungsschlüssel zu generieren:",[926,6448,6450],{"className":1035,"code":6449,"language":1037,"meta":425,"style":425},"openssl rand -hex 32\n",[495,6451,6452],{"__ignoreMap":425},[934,6453,6454,6457,6460,6463],{"class":936,"line":937},[934,6455,6456],{"class":1044},"openssl",[934,6458,6459],{"class":1048}," rand",[934,6461,6462],{"class":1048}," -hex",[934,6464,6465],{"class":2964}," 32\n",[430,6467,6468],{},"Speichere ihn an einem sicheren Ort; bei Verlust verlierst du den Zugriff auf die verschlüsselten Daten.",[2162,6470,6472],{"id":6471},"container-starten","Container starten",[926,6474,6476],{"className":1035,"code":6475,"language":1037,"meta":425,"style":425},"docker run -d \\\n  --name trek \\\n  -p 3000:3000 \\\n  -e ENCRYPTION_KEY=\"\u003Cgenerated_key>\" \\\n  -e APP_URL=\"https:\u002F\u002Ftrek.pafor.me\" \\\n  -v .\u002Fdata:\u002Fapp\u002Fdata \\\n  -v .\u002Fuploads:\u002Fapp\u002Fuploads \\\n  --restart unless-stopped \\\n  mauriceboe\u002Ftrek:latest\n",[495,6477,6478,6490,6500,6510,6527,6543,6553,6562,6572],{"__ignoreMap":425},[934,6479,6480,6482,6484,6487],{"class":936,"line":937},[934,6481,1178],{"class":1044},[934,6483,5513],{"class":1048},[934,6485,6486],{"class":1048}," -d",[934,6488,6489],{"class":944}," \\\n",[934,6491,6492,6495,6498],{"class":936,"line":1064},[934,6493,6494],{"class":1048},"  --name",[934,6496,6497],{"class":1048}," trek",[934,6499,6489],{"class":944},[934,6501,6502,6505,6508],{"class":936,"line":1071},[934,6503,6504],{"class":1048},"  -p",[934,6506,6507],{"class":1048}," 3000:3000",[934,6509,6489],{"class":944},[934,6511,6512,6515,6518,6520,6523,6525],{"class":936,"line":1078},[934,6513,6514],{"class":1048},"  -e",[934,6516,6517],{"class":1048}," ENCRYPTION_KEY=",[934,6519,3704],{"class":948},[934,6521,6522],{"class":1048},"\u003Cgenerated_key>",[934,6524,3704],{"class":948},[934,6526,6489],{"class":944},[934,6528,6529,6531,6534,6536,6539,6541],{"class":936,"line":1927},[934,6530,6514],{"class":1048},[934,6532,6533],{"class":1048}," APP_URL=",[934,6535,3704],{"class":948},[934,6537,6538],{"class":1048},"https:\u002F\u002Ftrek.pafor.me",[934,6540,3704],{"class":948},[934,6542,6489],{"class":944},[934,6544,6545,6548,6551],{"class":936,"line":1932},[934,6546,6547],{"class":1048},"  -v",[934,6549,6550],{"class":1048}," .\u002Fdata:\u002Fapp\u002Fdata",[934,6552,6489],{"class":944},[934,6554,6555,6557,6560],{"class":936,"line":1938},[934,6556,6547],{"class":1048},[934,6558,6559],{"class":1048}," .\u002Fuploads:\u002Fapp\u002Fuploads",[934,6561,6489],{"class":944},[934,6563,6564,6567,6570],{"class":936,"line":2275},[934,6565,6566],{"class":1048},"  --restart",[934,6568,6569],{"class":1048}," unless-stopped",[934,6571,6489],{"class":944},[934,6573,6574],{"class":936,"line":2286},[934,6575,6576],{"class":1048},"  mauriceboe\u002Ftrek:latest\n",[485,6578,6579],{},[488,6580,6581,6587],{},[441,6582,6583,6586],{},[495,6584,6585],{},"APP_URL"," muss korrekt eingestellt sein"," — der OAuth-Discovery-Flow des MCP-Servers hängt davon ab. Richte sie von Anfang an auf deine endgültige öffentliche HTTPS-Adresse ein.",[430,6589,6590],{},"Der erste Start dauert eine Weile, da das Image heruntergeladen werden muss:",[433,6592],{"src":6593,"alt":6594,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-docker-pull-image.webp","Docker-Pull- und Run-Protokolle für TREK","max-width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,6597,6598],{},"Überprüfe, ob der Container läuft:",[926,6600,6602],{"className":1035,"code":6601,"language":1037,"meta":425,"style":425},"docker ps\n",[495,6603,6604],{"__ignoreMap":425},[934,6605,6606,6608],{"class":936,"line":937},[934,6607,1178],{"class":1044},[934,6609,5172],{"class":1048},[433,6611],{"src":6612,"alt":6613,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-docker-ps-status.webp","Überprüfung des Status laufender Container via docker ps",[881,6615,6617],{"id":6616},"_2-domain-routing-ssl-mit-dem-caddy-reverse-proxy-einrichten","2. Domain-Routing & SSL mit dem Caddy-Reverse-Proxy einrichten",[430,6619,6620],{},"HTTPS ist für Passkeys und OAuth für MCP zwingend erforderlich. Der Domainname wird bei Cloudflare gehostet, was mit einem kostenlosen SSL-Zertifikat und DDoS-Schutz einhergeht.",[430,6622,6623],{},"Caddy wird als sicherer Reverse-Proxy-Server eingerichtet, um auf Port 3000 zu verweisen. Ein Beispiel für ein Caddyfile sieht wie folgt aus:",[926,6625,6627],{"className":2910,"code":6626,"language":2912,"meta":425,"style":425},"{$TREK_DOMAIN} {\n  encode zstd gzip\n  reverse_proxy host.docker.internal:3000\n}\n",[495,6628,6629,6640,6644,6653],{"__ignoreMap":425},[934,6630,6631,6633,6636,6638],{"class":936,"line":937},[934,6632,2940],{"class":948},[934,6634,6635],{"class":944},"$TREK_DOMAIN",[934,6637,2946],{"class":948},[934,6639,2949],{"class":948},[934,6641,6642],{"class":936,"line":1064},[934,6643,2954],{"class":944},[934,6645,6646,6648,6650],{"class":936,"line":1071},[934,6647,2959],{"class":944},[934,6649,891],{"class":948},[934,6651,6652],{"class":2964},"3000\n",[934,6654,6655],{"class":936,"line":1078},[934,6656,2927],{"class":948},[881,6658,6660],{"id":6659},"_3-erstkonfiguration-sichere-admin-einrichtung","3. Erstkonfiguration & sichere Admin-Einrichtung",[430,6662,6663],{},"Es gibt zwei Möglichkeiten, das Admin-Konto zu erstellen:",[485,6665,6666,6677],{},[488,6667,6668,6676],{},[441,6669,6670,576,6673],{},[495,6671,6672],{},"ADMIN_EMAIL",[495,6674,6675],{},"ADMIN_PASSWORD"," werden als Umgebungsvariablen definiert; diese Werte werden direkt verwendet.",[488,6678,6679,6680,6683,6684,6687,6688,6691,6692,6695],{},"TREK erstellt die E-Mail ",[495,6681,6682],{},"admin@trek.local",", den Benutzernamen ",[495,6685,6686],{},"admin"," und ein ",[441,6689,6690],{},"zufällig generiertes Passwort, das im Container-Log ausgegeben wird",". Führe ",[495,6693,6694],{},"docker logs trek"," aus, um es abzurufen.",[430,6697,6698],{},"Wenn das Passwort im Log nicht gefunden werden kann, setze es zurück:",[926,6700,6702],{"className":1035,"code":6701,"language":1037,"meta":425,"style":425},"docker exec -it -e RESET_ADMIN_EMAIL=admin@trek.local -e RESET_ADMIN_PASSWORD='YourNewPassword' trek node server\u002Freset-admin.js\n",[495,6703,6704],{"__ignoreMap":425},[934,6705,6706,6708,6710,6713,6716,6719,6721,6724,6726,6729,6731,6733,6736],{"class":936,"line":937},[934,6707,1178],{"class":1044},[934,6709,1184],{"class":1048},[934,6711,6712],{"class":1048}," -it",[934,6714,6715],{"class":1048}," -e",[934,6717,6718],{"class":1048}," RESET_ADMIN_EMAIL=admin@trek.local",[934,6720,6715],{"class":1048},[934,6722,6723],{"class":1048}," RESET_ADMIN_PASSWORD=",[934,6725,5473],{"class":948},[934,6727,6728],{"class":1048},"YourNewPassword",[934,6730,5473],{"class":948},[934,6732,6497],{"class":1048},[934,6734,6735],{"class":1048}," node",[934,6737,6738],{"class":1048}," server\u002Freset-admin.js\n",[430,6740,6741],{},"Beim ersten Login wirst du aufgefordert, das Passwort zu ändern.",[433,6743],{"src":6744,"alt":6745,"style":6746},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-initial-login-password-prompt.webp","Aufforderung zur Erstanmeldung und Zurücksetzung des Admin-Passworts","max-width: 215px; width:100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,6748,6749,6750,6753,6754],{},"Klicke auf ",[441,6751,6752],{},"Admin"," und aktualisiere die E-Mail-Adresse:",[433,6755],{"src":6756,"alt":6757,"style":6758},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-admin-email-update-panel.webp","Einrichten einer benutzerdefinierten E-Mail in den TREK-Admin-Einstellungen","max-width: 700px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[2162,6760,6762],{"id":6761},"_31-backups","3.1 Backups",[430,6764,6765,6766],{},"Konfiguriere automatische Backups mit einer Aufbewahrungsrichtlinie (Retention Policy) im Admin-Panel:\n",[433,6767],{"src":6768,"alt":6769,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-admin-backup-retention-policy.webp","Konfigurieren von automatischen Backup-Zeitplänen und Aufbewahrungsregeln",[2162,6771,6773],{"id":6772},"_32-hochgeladene-dateien-auf-cloudflare-r2-speichern","3.2 Hochgeladene Dateien auf Cloudflare R2 speichern",[430,6775,6776],{},"Das Speichern von hochgeladenen Dateien, Fotos und Backups in Cloudflare R2 hält die VPS-Festplatte sauber und schlank. TREK unterstützt S3-kompatible Backends, wofür sich Cloudflare R2 perfekt eignet.",[533,6778,6779,6785,6798,6808,6819,6834,6846,6861],{},[488,6780,6781,6782,552],{},"Erstelle ein R2-Bucket namens ",[495,6783,6784],{},"trek",[488,6786,6787,6788,6791,6792,6793],{},"Suche im Abschnitt ",[441,6789,6790],{},"Account Details"," nach deiner Account-ID:","\n  ",[433,6794],{"src":6795,"alt":6796,"style":6797},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fcloudflare-r2-account-details-id.webp","Auffinden der Cloudflare-Konto-ID im Portal","max-width: 325px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[488,6799,6749,6800,891,6792,6803],{},[441,6801,6802],{},"Manage API Tokens",[433,6804],{"src":6805,"alt":6806,"style":6807},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fcloudflare-r2-manage-api-tokens-button.webp","Cloudflare-Portal-Bildschirm zur Verwaltung von API-Tokens","max-width: 282px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[488,6809,6749,6810,6813,6792,6814],{},[441,6811,6812],{},"Create Account API token"," mit Lese-\u002FSchreibberechtigungen (Read\u002FWrite) für das Bucket:",[433,6815],{"src":6816,"alt":6817,"style":6818},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fcloudflare-r2-create-token-permissions.webp","Erstellen eines R2-Zugriffstokens mit Lese- und Schreibberechtigungen","max-width: 360px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[488,6820,6821,6822,6825,6826,891,6792,6829],{},"Klicke im ",[441,6823,6824],{},"ADMINISTRATION","-Panel auf ",[441,6827,6828],{},"Storage",[433,6830],{"src":6831,"alt":6832,"style":6833},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-administration-storage-menu.webp","Navigieren zu den Speichereinstellungen im TREK-Kontrollzentrum","max-width: 539px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[488,6835,6836,6837,6840,6792,6841],{},"Klicke auf die Schaltfläche ",[441,6838,6839],{},"Add Backend"," und trage Endpunkt, Bucket sowie die Anmeldedaten ein:",[433,6842],{"src":6843,"alt":6844,"style":6845},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-add-storage-backend-credentials.webp","Konfigurieren des S3-kompatiblen Cloudflare R2-Speicher-Backends","max-width: 445px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[488,6847,6749,6848,6851,6852,6855,6792,6856],{},[441,6849,6850],{},"Apply"," und danach auf die Schaltfläche ",[441,6853,6854],{},"Test",". Es sollte die Meldung 'Connection OK' erscheinen:",[433,6857],{"src":6858,"alt":6859,"style":6860},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-test-storage-backend-connection-ok.webp","Erfolgreicher Speichertest mit der Meldung Connection OK","max-width: 677px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[488,6862,6863,6864,891,6792,6867],{},"Stelle alle Speicherkategorien auf Cloudflare R2 um und klicke auf ",[441,6865,6866],{},"Save changes",[433,6868],{"src":6869,"alt":6870,"style":6871},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-switch-storage-categories-r2.webp","Leiten aller Dateispeicherkategorien an Cloudflare R2","max-width: 653px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[2162,6873,6875],{"id":6874},"_33-passkey-login","3.3 Passkey-Login",[430,6877,6878,6879,891],{},"TREK unterstützt Passkeys, Zwei-Faktor-Authentifizierung (2FA) und OIDC Single Sign-On (SSO). Trage für Passkeys deinen Domainnamen und die erlaubten Origins in den Einstellungen ein und klicke auf ",[441,6880,1142],{},[433,6882],{"src":6883,"alt":6884,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-passkey-allowed-origins-settings.webp","Registrieren erlaubter Ursprünge für die sichere Passkey-Authentifizierung",[430,6886,6887,6888,6891],{},"Ohne die Konfiguration der ",[441,6889,6890],{},"allowed origins"," schlägt die Registrierung von Passkeys fehl.",[2162,6893,6895],{"id":6894},"_34-google-maps-api-key","3.4 Google Maps API-Key",[430,6897,6898],{},"Ein Google Maps-Key reichert die Ortssuche mit Bewertungen, Öffnungszeiten und Fotos an. Ohne Key greift TREK automatisch auf OpenStreetMap zurück – allerdings ohne Bewertungen und Bilder.",[430,6900,6901,6902,6907,6908,6911,6912],{},"Folge diesem ",[444,6903,6906],{"href":6904,"rel":6905},"https:\u002F\u002Fmapsplatform.google.com\u002Fmaps-demo-key\u002F",[448],"Link"," und klicke auf ",[441,6909,6910],{},"Get demo key",", um einen anzufordern:                                                  ",[433,6913],{"src":6914,"alt":6915,"style":6916},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fgoogle-maps-get-demo-api-key.webp","Anfordern eines Google Maps Platform-API-Schlüssels","max-width: 176px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,6918,6919,6920,6922,6923],{},"Füge den Key in den Einstellungen ein und klicke auf ",[441,6921,6854],{},", um die Verbindung zu bestätigen:\n",[433,6924],{"src":6925,"alt":6926,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-google-maps-key-test-connection.webp","Überprüfung der Google Maps-API-Schlüsselkonnektivität in den Einstellungen",[2162,6928,6930],{"id":6929},"_35-ki-integration","3.5 KI-Integration",[430,6932,6933],{},"Das KI-Modell wird verwendet, um Buchungsbestätigungs-E-Mails und PDFs in strukturierte Reservierungen zu parsen.",[430,6935,6936,6937,6940,6941,6944],{},"Klicke im linken Menü auf ",[441,6938,6939],{},"Addons"," und aktiviere ",[441,6942,6943],{},"AI Parsing",". Wähle 'OpenAI' (oder einen anderen kompatiblen Anbieter) aus und trage die Anbieterdetails ein:",[433,6946],{"src":6947,"alt":6948,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-addons-enable-ai-parsing-openai.webp","Aktivieren des AI-Parsing-Addons mit OpenAI-Integration",[2162,6950,6952],{"id":6951},"_36-mcp-zugriff","3.6 MCP-Zugriff",[430,6954,6955,6956,6958,6959,891],{},"Aktiviere unter ",[441,6957,6939],{}," die Option ",[441,6960,6961],{},"MCP",[433,6963],{"src":6964,"alt":6965,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-addons-enable-mcp.webp","Aktivieren des Model Context Protocol MCP-Server-Addons",[2162,6967,6969],{"id":6968},"_37-plugins","3.7 Plugins",[430,6971,6972],{},"Die folgenden Plugins werden empfohlen und sollten aktiviert werden:",[433,6974],{"src":6975,"alt":6976,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-recommended-addons-plugins-activation.webp","Liste der aktiven empfohlenen Plugins und Addons",[2162,6978,6980],{"id":6979},"_38-erstelle-deinen-alltags-benutzer","3.8 Erstelle deinen Alltags-Benutzer",[430,6982,6983],{},"Plane Reisen als normaler Benutzer, nicht als Admin. Erstelle einen regulären Account und melde dich damit an:",[433,6985],{"src":6986,"alt":6987,"style":6988},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-create-regular-user-form.webp","Erstellen eines regulären Benutzerkontos im TREK-Panel","max-width: 420px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,6990,6991],{},"Füge nach dem Einloggen einen Passkey hinzu oder richte 2FA ein, um den Account abzusichern:",[433,6993],{"src":6994,"alt":6995,"style":6996},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-user-security-passkey-2fa-setup.webp","Konfigurieren der Benutzersicherheitseinstellungen mit Passkeys und 2FA","max-width: 381px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,6998,6749,6999,7002],{},[441,7000,7001],{},"+ Add a passkey",", gib das aktuelle Passwort ein und bestätige:",[433,7004],{"src":7005,"alt":7006,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-add-passkey-confirm-password.webp","Bestätigen des Passworts zur Registrierung eines neuen Hardware-Passkeys",[881,7008,7010],{"id":7009},"_4-testen-deines-deployments-importieren-historischer-reisedaten","4. Testen deines Deployments: Importieren historischer Reisedaten",[430,7012,7013],{},"Ein guter Weg, um TREK kennenzulernen, ist das Erfassen deiner bisherigen Reisehistorie.",[2162,7015,7017],{"id":7016},"_41-reise-erstellen","4.1 Reise erstellen",[430,7019,6749,7020,7023,7024,576,7027,7030],{},[441,7021,7022],{},"+ New Trip"," und setze ",[441,7025,7026],{},"Start Date",[441,7028,7029],{},"End Date"," auf die vergangenen Reisedaten:",[433,7032],{"src":7033,"alt":7034,"style":7035},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-create-new-trip-details.webp","Erstellen einer neuen Reise mit benutzerdefinierten Datumsbereichen","max-width: 334px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7037,7038,7039,891],{},"Füge ein Titelbild hinzu (per Drag & Drop oder aus der Zwischenablage einfügen) und klicke auf ",[441,7040,7041],{},"Create New Trip",[433,7043],{"src":7044,"alt":7045,"style":7046},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-trip-cover-image-upload.webp","Einrichten eines hochwertigen Reise-Titelbilds","max-width: 608px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[2162,7048,7050],{"id":7049},"_42-buchungen-importieren","4.2 Buchungen importieren",[430,7052,7053],{},"Ziehe alle Dateien zu Flügen, Zügen und anderen Transportmitteln hinein:",[433,7055],{"src":7056,"alt":7057,"style":7058},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-import-travel-booking-files.webp","Drag-and-Drop-Bereich zum Importieren von Reise-PDFs und Buchungen","max-width: 570px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7060],{"src":7061,"alt":7062,"style":7063},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-import-booking-pdf-processing-status.webp","Verarbeitungsfenster für hochgeladene Reservierungen mit Extraktionsstatus","max-width: 377px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7065,7066],{},"Bei aktiviertem KI-Modell werden Buchungsbestätigungs-PDFs automatisch geparst und in strukturierte Reservierungen umgewandelt.",[430,7068,7069,7070,7073],{},"Überprüfe das geparste Ergebnis und klicke auf ",[441,7071,7072],{},"Add",", um die Buchungsdetails zu speichern:",[433,7075],{"src":7076,"alt":7077,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-review-parsed-booking-details.webp","Überprüfung der von der KI extrahierten strukturierten Buchungsdetails",[430,7079,7080],{},"Wenn eine Buchung nur als E-Mail vorliegt, exportiere sie als PDF und lade sie hoch – es gilt die gleiche Extraktions-Pipeline.",[430,7082,7083],{},"Die folgenden Screenshots zeigen, wie Buchungen dargestellt werden:",[430,7085,7086,7090],{},[433,7087],{"src":7088,"alt":7089,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-trip-bookings-timeline-view.webp","Umfassende Zeitleistenanzeige der Reisebuchungen",[433,7091],{"src":7092,"alt":7093,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-booking-confirmation-details.webp","Detailansicht einer bestätigten Transportreservierung",[430,7095,7096,7097,7100],{},"Auf der ",[441,7098,7099],{},"Plan","-Seite werden alle Unterkünfte auf der Karte angezeigt:",[433,7102],{"src":7103,"alt":7104,"style":7105},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-plan-accommodations-map-display.webp","Interaktive Karte mit allen Hotelunterkünften","max-width: 546px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7107,7108,7109,7112],{},"Klicke im oberen Menü auf ",[441,7110,7111],{},"Atlas"," für eine Liste (und Karte) aller besuchten Länder:",[433,7114],{"src":7115,"alt":7116,"style":7117},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-atlas-countries-visited-summary.webp","Reiseverlaufsübersicht im persönlichen Atlas-Tracker","max-width: 407px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[2162,7119,7121],{"id":7120},"_43-reisepartner-hinzufügen","4.3 Reisepartner hinzufügen",[430,7123,6836,7124,891],{},[441,7125,7126],{},"Share",[433,7128],{"src":7129,"alt":7130,"style":7131},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-trip-share-options-button.webp","Öffnen des Dialogfelds zum Teilen von Reisen in TREK","max-width: 224px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7133,7134],{},"Am unteren Ende des Dialogs können Gäste hinzugefügt werden:",[433,7136],{"src":7137,"alt":7138,"style":7139},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-trip-add-companions-guests.webp","Hinzufügen von benutzerdefinierten Reisebegleitern und Gästen","max-width: 635px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[2162,7141,7143],{"id":7142},"_44-ausgaben-erfassen","4.4 Ausgaben erfassen",[430,7145,6749,7146,7149],{},[441,7147,7148],{},"Add expense",", um sonstige Kosten abseits von Buchungen wie Auslandskrankenversicherung, Nahverkehr oder SIM-Karten hinzuzufügen:",[433,7151],{"src":7152,"alt":7153,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-add-custom-expense-form.webp","Eingabe detaillierter Ausgabendaten im Ausgabenformular",[433,7155],{"src":7156,"alt":7157,"style":7158},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-expenses-list-billing-split.webp","Aufteilung der Rechnung und Ausgabenverfolgung","max-width: 526px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[2162,7160,7162],{"id":7161},"_45-reiseabschnitte","4.5 Reiseabschnitte",[430,7164,7165],{},"Diese Funktion erfordert die Aktivierung des Trip Segment-Plugins.",[430,7167,7168],{},"Längere Reisen lassen sich hervorragend in Segmente unterteilen, wobei jeder Abschnitt eigene Buchungen, Orte und Kosten anzeigt:",[433,7170],{"src":7171,"alt":7172,"style":7173},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-trip-segments-overview-display.webp","Aufteilen einer komplexen Reiseroute in Reiseabschnitte","max-width: 465px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7175],{"src":7176,"alt":7177,"style":7178},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-trip-segment-itinerary-details.webp","Aktiver Reiseabschnitt mit Orten und Zeitplänen","max-width: 596px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7180],{"src":7181,"alt":7182,"style":7183},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-trip-segments-interactive-map.webp","Kartierung der einzelnen Reiseabschnitte auf der Zeitleiste","max-width: 605px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[2162,7185,7187],{"id":7186},"_46-journey-erstellen-und-atlas-prüfen","4.6 Journey erstellen und Atlas prüfen",[430,7189,7190,7191,7194],{},"Fasse Reisen in einer ",[441,7192,7193],{},"Journey"," zusammen und schreibe Berichte, um das Abenteuer mit Freunden zu teilen:",[433,7196],{"src":7197,"alt":7198,"style":7199},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-create-new-journey-group.webp","Zusammenführen mehrerer Reisen in eine visuelle Reise (Journey)","max-width: 441px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7201],{"src":7202,"alt":7203,"style":7204},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-journey-timeline-story-writing.webp","Entwerfen von visuellen Geschichten im Reise-Panel","max-width: 443px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7206],{"src":7207,"alt":7208,"style":7209},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-journey-gallery-media-grid.webp","Mediensammlung und Galerie-Raster innerhalb einer Reise","max-width: 440px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7211],{"src":7212,"alt":7213,"style":7214},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-journey-public-share-link.webp","Generieren von öffentlichen Links zum Teilen für kollaborative Reisen","max-width: 532px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[881,7216,7218],{"id":7217},"_5-maßgeschneiderte-reiserouten-und-packlisten-entwerfen","5. Maßgeschneiderte Reiserouten und Packlisten entwerfen",[430,7220,6749,7221,7223],{},[441,7222,7022],{},", gib einen Namen ein und lege die Reisedaten fest:",[433,7225],{"src":7226,"alt":7227,"style":7228},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-planning-new-trip-setup.webp","Erster Dialog zur Erstellung einer Reise ohne festes Datum","max-width: 432px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7230,7231,7234],{},[441,7232,7233],{},"Wenn deine Reisedaten noch nicht feststehen, lass beide Felder leer."," Es erscheint ein Feld für die Anzahl der Tage (bis zu 365). Erst planen, später terminieren.",[2162,7236,7238],{"id":7237},"_51-orte-hinzufügen","5.1 Orte hinzufügen",[430,7240,7241],{},"Dies ist der zeitaufwendigste Schritt bei jeder Reiseplanung. TREK bietet dafür verschiedene Wege an:",[433,7243],{"src":7244,"alt":7245,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-add-places-methods-overview.webp","Verschiedene Methoden zum Hinzufügen neuer Orte zu Reiserouten",[430,7247,7248,7251],{},[441,7249,7250],{},"1. Rechtsklick auf die Karte",", um einen Ort an genau dieser Stelle zu erstellen – die Adresse wird automatisch per Reverse-Geocoding ermittelt:",[433,7253],{"src":7254,"alt":7255,"style":7256},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-right-click-map-location.webp","Rechtsklick auf der Karte, um Orte genau zu bestimmen","max-width: 632px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7258],{"src":7259,"alt":7260,"style":7261},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-right-click-reverse-geocode-address.webp","Automatische Geokodierung der ausgewählten Kartenkoordinaten","max-width: 628px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7263,7264,7267],{},[441,7265,7266],{},"2. Klicke auf + Add Place\u002FActivity"," und suche nach dem Namen",[433,7269],{"src":7270,"alt":7271,"style":7272},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-search-place-by-name-input.webp","Suchen nach realen Orten über die Texteingabe","max-width: 642px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7274],{"src":7275,"alt":7276,"style":7277},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-select-place-search-results-list.webp","Anzeige von Ortssuchergebnissen mit Adress-Overlays","max-width: 594px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7279],{"src":7280,"alt":7281,"style":7282},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-place-details-rich-info-card.webp","Umfassende Ortsinfokarte mit Bewertungen und Bewertungen","max-width: 568px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7284,7285,510,7288,1522,7291,7294],{},[441,7286,7287],{},"3. Kopiere eine Google-Maps-URL",[495,7289,7290],{},"maps.app.goo.gl\u002F...",[495,7292,7293],{},"maps.google.com\u002F...",") in das Suchfeld. TREK liest Namen, Adresse und Koordinaten automatisch aus:",[433,7296],{"src":7297,"alt":7298,"style":6860},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-paste-google-maps-share-link.webp","Direktes Einlesen von Orten aus eingefügten Google Maps-Teillinks",[433,7300],{"src":7301,"alt":7302,"style":7303},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-google-maps-parsed-location.webp","Erfolgreiche Koordinatenextraktion aus einer Google Maps-URL","max-width: 543px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7305,7306,7309,7310,510,7313,576,7316,7319,7320,7323],{},[441,7307,7308],{},"4. Bulk-Import"," — am einfachsten von allen. Wenn du bereits eine Liste deiner Wunschziele in Google Maps führst, exportiere sie als ",[495,7311,7312],{},".gpx",[495,7314,7315],{},".kml",[495,7317,7318],{},".kmz"," funktionieren auch) und klicke im rechten Panel auf ",[441,7321,7322],{},"Import file",", um alles auf einmal zu importieren:",[433,7325],{"src":7326,"alt":7327,"style":7328},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-bulk-import-places-gpx-file.webp","Durchführen von Massenimporten von Orten mithilfe von GPX- oder KML-Dateien","max-width: 389px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7330,7331],{},"Füge zuerst alles hinzu, was interessant ist, unabhängig davon, ob es in den Zeitplan passt. Ordne die Orte erst später den einzelnen Tagen zu.",[2162,7333,7335],{"id":7334},"_52-tagespläne-und-notizen","5.2 Tagespläne und Notizen",[430,7337,7338],{},"Der Tagesplan organisiert die Orte tagesweise in der richtigen Reihenfolge. Es ist eine einklappbare Liste pro Tag, und alles funktioniert per Drag-and-Drop:",[433,7340],{"src":7341,"alt":7342,"style":7343},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-day-plan-drag-drop-ordering.webp","Anpassen der täglichen Routen per Drag-and-Drop","max-width: 496px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7345,7346],{},"Die Details, die es besonders nützlich machen:",[485,7348,7349,7359,7369,7379],{},[488,7350,7351,7354,7355],{},[441,7352,7353],{},"Transport zwischen Stopps",": Das Bus-Symbol oben links an einem Tag fügt die Verbindung hinzu (Zug, Bus, Flugabschnitte innerhalb des Tages):\n",[433,7356],{"src":7357,"alt":7358,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-day-plan-commuting-transport-button.webp","Registrieren von Pendelverkehrsmitteln zwischen Tagesabschnitten",[488,7360,7361,7364,7365],{},[441,7362,7363],{},"Tagesnotizen",": Das Notiz-Symbol unten links hängt mit Emojis versehene Notizen an — 'heute früh aufstehen', 'dieses Museum erfordert eine Reservierung':\n",[433,7366],{"src":7367,"alt":7368,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-day-plan-icon-tagged-notes-button.webp","Hinzufügen von gut sichtbaren, mit Symbolen gekennzeichneten benutzerdefinierten Notizen",[488,7370,7371,7374,7375],{},[441,7372,7373],{},"Zeitslots",": Ziehe einen Ort aus dem rechten Panel in einen Tag und weise ihm eine Uhrzeit zu. Orte mit festgelegten Zeiten werden auf der Karte automatisch verbunden:\n",[433,7376],{"src":7377,"alt":7378,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-day-plan-timed-places-routing.webp","Automatisch berechnete Transitrouten zwischen zeitlich festgelegten Orten",[488,7380,7381,7382,576,7385,7388,7389,552],{},"Weitere Informationen zu ",[441,7383,7384],{},"Routenoptimierung",[441,7386,7387],{},"Wetter"," findest du auf der ",[444,7390,7393],{"href":7391,"rel":7392},"https:\u002F\u002Fgithub.com\u002Fliketrek\u002FTREK\u002Fwiki\u002FDay-Plans-and-Notes",[448],"Wiki-Seite zu Tagesplänen und Notizen",[2162,7395,7397],{"id":7396},"_53-collections-wiederverwendbare-ortslisten","5.3 Collections: Wiederverwendbare Ortslisten",[430,7399,7400,7401,7404],{},"Collections ermöglicht es dir, Ortslisten unabhängig von bestimmten Reisen zu speichern. Sie können mit Freunden geteilt werden und stehen für die nächste Reise bereit. Orte werden in Reisen ",[441,7402,7403],{},"kopiert",", sodass das Bearbeiten eines Eintrags in einer Reise niemals deine Collection verändert und umgekehrt.",[430,7406,6749,7407,7410],{},[441,7408,7409],{},"Collections"," in der oberen Menüleiste:",[433,7412],{"src":7413,"alt":7414,"style":7415},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-collections-dashboard-view.webp","Zugriff auf benutzerdefinierte Sammlungen für gespeicherte Orte","max-width: 495px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7417,6749,7418,7421],{},[441,7419,7420],{},"+ New list",", um eine neue Liste zu erstellen:",[433,7423],{"src":7424,"alt":7425,"style":7426},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-collections-create-new-list.webp","Erstellen von benutzerdefinierten Listen in den Sammlungen","max-width: 269px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7428,6749,7429,7432],{},[441,7430,7431],{},"+ Add a place"," und fülle die Details aus:",[433,7434],{"src":7435,"alt":7436,"style":7437},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-collections-add-place-manually-form.webp","Manuelle Formulareingabe zur Bestückung benutzerdefinierter Sammlungslisten","max-width: 271px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7439,7440,7443],{},[441,7441,7442],{},"Hinweis:"," Die Suche innerhalb des 'Add a place'-Dialogs scheint nicht zu funktionieren, daher musst du die Details manuell eingeben.",[430,7445,7446],{},"Wenn Geo-Koordinaten für die Orte verfügbar sind, werden sie auf der Karte angezeigt:",[433,7448],{"src":7449,"alt":7450,"style":7451},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-collections-map-places-display.webp","Visualisierung benutzerdefinierter Sammlungsorte auf einer interaktiven Karte","max-width: 592px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7453,7454,7455,7458],{},"Um Orte mit Labels zu organisieren, klicke auf das ",[441,7456,7457],{},"Häkchen","-Symbol:",[433,7460],{"src":7461,"alt":7462,"style":7463},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-collections-select-places-tickbox.webp","Auswahlmodus für die Massenkennzeichnung gespeicherter Orte","max-width: 662px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7465,7466,7467,891],{},"Wähle die zu gruppierenden Orte aus und klicke auf ",[441,7468,7469],{},"Assign label",[433,7471],{"src":7472,"alt":7473,"style":7303},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-collections-group-assign-label.webp","Zuweisen von beschreibenden Beschriftungen zu ausgewählten Orten",[430,7475,6749,7476,7479],{},[441,7477,7478],{},"Manage labels",", um zuerst Labels zu erstellen:",[433,7481],{"src":7482,"alt":7483,"style":7484},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-collections-manage-custom-labels.webp","Erstellung und Verwaltung von benutzerdefinierten Labels","max-width: 411px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7486,7487,7488,891],{},"Wähle ein Label aus und klicke auf ",[441,7489,7469],{},[433,7491],{"src":7492,"alt":7493,"style":7117},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-collections-confirm-label-selection.webp","Anwenden von benutzerdefinierten Labels auf Gruppierungsorte",[2162,7495,7497],{"id":7496},"_54-kosten-und-budget","5.4 Kosten und Budget",[430,7499,7500],{},"Auf der Seite 'Costs' können wir sonstige Ausgaben für die Reise hinzufügen.",[433,7502],{"src":7503,"alt":7504,"style":7343},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-costs-budget-overall-expenses-list.webp","Umfassende Ausgabentabelle und Saldenausgleichsbuch",[430,7506,7507],{},"Zahlungen von Reisepartnern können auf derselben Seite hinzugefügt und aufgeteilt werden.",[430,7509,7510,7511,7514],{},"Das Settlement-Panel nutzt einen Greedy-Matching-Algorithmus, um die ",[441,7512,7513],{},"minimale Anzahl an Überweisungen"," zu berechnen, die nötig ist, um zu klären, wer wem wie viel schuldet.",[881,7516,7518],{"id":7517},"_6-model-context-protocol-mcp-für-ki-gestützte-reiseplanung-nutzen","6. Model Context Protocol (MCP) für KI-gestützte Reiseplanung nutzen",[430,7520,7521,7522,7525],{},"TREK verfügt über einen integrierten ",[441,7523,7524],{},"MCP-Server (Model Context Protocol)",", der es KI-Agents ermöglicht, deine Reisedaten direkt zu lesen und zu schreiben – mit über 150 Tools und 30 Ressourcen für Reisen, Orte, Budgets, Packlisten, Buchungen und Kollaboration.",[2162,7527,7529],{"id":7528},"_61-cloudflare-zero-trust","6.1 Cloudflare Zero Trust",[430,7531,7532,7533,7535,7536,552],{},"Da TREK hinter einem ",[444,7534,1725],{"href":363},"-Netzwerk läuft, musst du die Domain zur Einschlussliste für Split-Tunnel hinzufügen. Andernfalls treten Probleme bei der OAuth-Autorisierung auf. Bitte lies dazu dieses GitHub-Issue: ",[444,7537,7540],{"href":7538,"rel":7539},"https:\u002F\u002Fgithub.com\u002Fliketrek\u002FTREK\u002Fissues\u002F1463",[448],"github issue",[463,7542],{"description":2610,"image":2611,"image-alt":2612,"label":7543,"min-read":7544,"title":1710,"to":363},"Verwandte Anleitung","9",[433,7546],{"src":7547,"alt":7548,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fcloudflare-zero-trust-split-tunnels-domain.webp","Hinzufügen von benutzerdefinierten Domänen zu Cloudflare Warp Split Tunnels",[2162,7550,7552],{"id":7551},"_62-claude-desktop","6.2 Claude Desktop",[430,7554,6749,7555,7558,7559],{},[441,7556,7557],{},"+ New Client",", um einen KI-Agenten-Client zu erstellen:\n",[433,7560],{"src":7561,"alt":7562,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-register-new-mcp-client.webp","Registrieren eines neuen benutzerdefinierten Client-Tokens in den Einstellungen",[430,7564,7565,7566,6907,7569,891],{},"Wähle den Reiter ",[441,7567,7568],{},"Claude Desktop",[441,7570,7571],{},"Register Client",[433,7573],{"src":7574,"alt":7575,"style":7576},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-mcp-claude-desktop-client-credentials.webp","Generieren von Claude Desktop-Client-Anmeldedaten","max-width: 354px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7578,7579,7580,7583],{},"Ein Paar aus Client-ID und Client-Secret wird angezeigt. Kopiere sie an einen sicheren Ort. Klicke dann auf ",[441,7581,7582],{},"Client Configuration",", um die MCP-Konfiguration anzuzeigen:",[433,7585],{"src":7586,"alt":7587,"style":7588},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-mcp-client-configuration-block.webp","Abrufen des vorformatierten MCP-Server-Konfigurationsblocks","max-width: 508px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7590,7591,7592,7595],{},"Klicke in Claude Desktop auf ",[441,7593,7594],{},"Edit Config",", um die lokale Konfigurationsdatei für MCP-Server zu öffnen:",[433,7597],{"src":7598,"alt":7599,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fclaude-desktop-mcp-config-json.webp","Bearbeiten der lokalen MCP-Konfigurationsdatei (json) von Claude Desktop",[430,7601,7602],{},"Füge die TREK-Konfiguration ein und ersetze die Platzhalter durch deine Zugangsdaten:",[926,7604,7606],{"className":2910,"code":7605,"language":2912,"meta":425,"style":425},"  \"mcpServers\": {\n    \"trek\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"mcp-remote\",\n        \"https:\u002F\u002Ftrek.pafor.me\u002Fmcp\",\n        \"--static-oauth-client-info\",\n        \"{\\\"client_id\\\": \\\"\u003Cyour_client_id>\\\", \\\"client_secret\\\": \\\"\u003Cyour_client_secret>\\\"}\"\n      ]\n    }\n  },\n",[495,7607,7608,7622,7635,7657,7671,7683,7694,7705,7750,7755,7760],{"__ignoreMap":425},[934,7609,7610,7613,7616,7618,7620],{"class":936,"line":937},[934,7611,7612],{"class":948},"  \"",[934,7614,7615],{"class":1048},"mcpServers",[934,7617,3704],{"class":948},[934,7619,580],{"class":944},[934,7621,2919],{"class":948},[934,7623,7624,7627,7629,7631,7633],{"class":936,"line":1064},[934,7625,7626],{"class":948},"    \"",[934,7628,6784],{"class":940},[934,7630,3704],{"class":948},[934,7632,891],{"class":948},[934,7634,2949],{"class":948},[934,7636,7637,7640,7643,7645,7647,7649,7652,7654],{"class":936,"line":1071},[934,7638,7639],{"class":948},"      \"",[934,7641,7642],{"class":1044},"command",[934,7644,3704],{"class":948},[934,7646,891],{"class":948},[934,7648,3292],{"class":948},[934,7650,7651],{"class":1048},"npx",[934,7653,3704],{"class":948},[934,7655,7656],{"class":948},",\n",[934,7658,7659,7661,7664,7666,7668],{"class":936,"line":1078},[934,7660,7639],{"class":948},[934,7662,7663],{"class":1044},"args",[934,7665,3704],{"class":948},[934,7667,891],{"class":948},[934,7669,7670],{"class":948}," [\n",[934,7672,7673,7676,7679,7681],{"class":936,"line":1927},[934,7674,7675],{"class":948},"        \"",[934,7677,7678],{"class":1048},"mcp-remote",[934,7680,3704],{"class":948},[934,7682,7656],{"class":948},[934,7684,7685,7687,7690,7692],{"class":936,"line":1932},[934,7686,7675],{"class":948},[934,7688,7689],{"class":1048},"https:\u002F\u002Ftrek.pafor.me\u002Fmcp",[934,7691,3704],{"class":948},[934,7693,7656],{"class":948},[934,7695,7696,7698,7701,7703],{"class":936,"line":1938},[934,7697,7675],{"class":948},[934,7699,7700],{"class":1048},"--static-oauth-client-info",[934,7702,3704],{"class":948},[934,7704,7656],{"class":948},[934,7706,7707,7709,7711,7714,7717,7719,7721,7723,7726,7728,7730,7732,7735,7737,7739,7741,7744,7746,7748],{"class":936,"line":2275},[934,7708,7675],{"class":948},[934,7710,2940],{"class":1048},[934,7712,7713],{"class":944},"\\\"",[934,7715,7716],{"class":1048},"client_id",[934,7718,7713],{"class":944},[934,7720,580],{"class":1048},[934,7722,7713],{"class":944},[934,7724,7725],{"class":1048},"\u003Cyour_client_id>",[934,7727,7713],{"class":944},[934,7729,744],{"class":1048},[934,7731,7713],{"class":944},[934,7733,7734],{"class":1048},"client_secret",[934,7736,7713],{"class":944},[934,7738,580],{"class":1048},[934,7740,7713],{"class":944},[934,7742,7743],{"class":1048},"\u003Cyour_client_secret>",[934,7745,7713],{"class":944},[934,7747,2946],{"class":1048},[934,7749,1959],{"class":948},[934,7751,7752],{"class":936,"line":2286},[934,7753,7754],{"class":948},"      ]\n",[934,7756,7757],{"class":936,"line":1699},[934,7758,7759],{"class":948},"    }\n",[934,7761,7762,7765],{"class":936,"line":2387},[934,7763,7764],{"class":948},"  }",[934,7766,7656],{"class":944},[430,7768,7769,7770,7773],{},"Starte Claude Desktop neu. Der TREK-Server wird nun unter ",[441,7771,7772],{},"Local MCP servers"," als verbunden angezeigt:",[433,7775],{"src":7776,"alt":7777,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fclaude-desktop-mcp-trek-server-connected.webp","Überprüfung des aktiven TREK-Verbindungsstatus in der Claude-Benutzeroberfläche",[430,7779,7780],{},"Führe nun einen Prompt aus:",[433,7782],{"src":7783,"alt":7784,"style":7785},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fclaude-desktop-mcp-natural-language-prompt.webp","Aufforderung an Claude in natürlicher Sprache, Reisedaten zu manipulieren","max-width: 550px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7787,7788],{},"Fügen wir eine Ausgabe in natürlicher Sprache hinzu:",[926,7790,7793],{"className":7791,"code":7792,"language":4654,"meta":425},[4652],"For the West Europe trip, the Grab from KLIA1 to the hotel cost RM115.90 on 26\u002F4\u002F2025. Please add it as an expense without split to the trip.\n",[495,7794,7792],{"__ignoreMap":425},[433,7796],{"src":7797,"alt":7798,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fclaude-desktop-mcp-add-expense-response.webp","Claude nutzt Tools, um automatisch eine Ausgabe zu erfassen",[430,7800,7801,7802,7805],{},"Beim Überprüfen der ",[441,7803,7804],{},"Costs","-Seite sehen wir, dass die Ausgabe mit 'No one paid yet' erstellt wurde, da kein Zahler genannt wurde:",[433,7807],{"src":7808,"alt":7809,"style":6758},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-costs-page-mcp-parsed-expense.webp","Bestätigen der neu geparsten KI-Ausgabe in der Kostenübersicht",[430,7811,7812],{},"Das Hinzufügen zur Packliste funktioniert genauso:",[433,7814],{"src":7815,"alt":7816,"style":7817},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fclaude-desktop-mcp-add-packing-items.webp","Claude fügt Packlistenartikel mithilfe von natürlicher Sprache hinzu","max-width: 631px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7819,7820,7821,7824],{},"Aktualisiere die Seite ",[441,7822,7823],{},"Packing List"," und die drei Artikel sind da:",[433,7826],{"src":7827,"alt":7828,"style":7829},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Ftrek-packing-list-mcp-parsed-items.webp","Bestätigen der neu geparsten Packlistenartikel auf der Packlisten-Seite","max-width: 312px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[2162,7831,7833],{"id":7832},"_63-gemini-cli-dynamische-registrierung","6.3 Gemini CLI (Dynamische Registrierung)",[430,7835,7836,7837,7840,7841,3482],{},"Gemini CLI unterstützt eine ",[441,7838,7839],{},"dynamische Registrierung",", es ist also kein vorab erstellter Client erforderlich. Füge dies zu ",[495,7842,7843],{},".gemini\u002Fsettings.json",[926,7845,7847],{"className":2910,"code":7846,"language":2912,"meta":425,"style":425},"    \"trek\": {\n      \"httpUrl\": \"https:\u002F\u002Ftrek.pafor.me\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    }\n",[495,7848,7849,7861,7880,7893,7906,7911],{"__ignoreMap":425},[934,7850,7851,7853,7855,7857,7859],{"class":936,"line":937},[934,7852,7626],{"class":948},[934,7854,6784],{"class":1048},[934,7856,3704],{"class":948},[934,7858,580],{"class":944},[934,7860,2919],{"class":948},[934,7862,7863,7865,7868,7870,7872,7874,7876,7878],{"class":936,"line":1064},[934,7864,7639],{"class":948},[934,7866,7867],{"class":940},"httpUrl",[934,7869,3704],{"class":948},[934,7871,891],{"class":948},[934,7873,3292],{"class":948},[934,7875,7689],{"class":1048},[934,7877,3704],{"class":948},[934,7879,7656],{"class":948},[934,7881,7882,7884,7887,7889,7891],{"class":936,"line":1071},[934,7883,7639],{"class":948},[934,7885,7886],{"class":940},"oauth",[934,7888,3704],{"class":948},[934,7890,891],{"class":948},[934,7892,2949],{"class":948},[934,7894,7895,7897,7900,7902,7904],{"class":936,"line":1078},[934,7896,7675],{"class":948},[934,7898,7899],{"class":1044},"enabled",[934,7901,3704],{"class":948},[934,7903,891],{"class":948},[934,7905,1383],{"class":948},[934,7907,7908],{"class":936,"line":1927},[934,7909,7910],{"class":948},"      }\n",[934,7912,7913],{"class":936,"line":1932},[934,7914,7759],{"class":948},[430,7916,7917,7918,7921,7922,7925,7926],{},"Führe ",[495,7919,7920],{},"gemini"," im Terminal aus und klicke auf ",[441,7923,7924],{},"Approve",", wenn die Autorisierungsaufforderung erscheint:\n",[433,7927],{"src":7928,"alt":7929,"style":7930},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fmcp-client-oauth-authorization-prompt.webp","Genehmigung des OAuth-Zugriffs für den TREK-MCP-Server","max-width: 488px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,7932,7933],{},"Beginne dann mit einem einfachen Prompt:",[433,7935],{"src":7936,"alt":7937,"style":7938},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fgemini-cli-mcp-prompt-itinerary.webp","Aufforderung an die Gemini-CLI, Reiserouten abzurufen","max-width: 415px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[433,7940],{"src":7941,"alt":7942,"style":7209},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fgemini-cli-mcp-display-itinerary.webp","Erfolgreiche Anzeige strukturierter Reiseinformationen in der Gemini-CLI",[2162,7944,7946],{"id":7945},"_64-kimi-cli-dynamische-registrierung","6.4 Kimi CLI (Dynamische Registrierung)",[430,7948,7949,7950,7953,7954,3482],{},"Gleicher Ansatz — füge dies der Datei ",[495,7951,7952],{},"mcp.json"," im Ordner ",[495,7955,7956],{},"\u002FUsers\u002F\u003Cuser>\u002F.kimi\u002F",[926,7958,7960],{"className":2910,"code":7959,"language":2912,"meta":425,"style":425},"    \"trek\": {\n      \"type\": \"http\",\n      \"url\": \"https:\u002F\u002Ftrek.pafor.me\u002Fmcp\",\n      \"auth\": \"oauth\"\n    }\n",[495,7961,7962,7974,7994,8012,8029],{"__ignoreMap":425},[934,7963,7964,7966,7968,7970,7972],{"class":936,"line":937},[934,7965,7626],{"class":948},[934,7967,6784],{"class":1048},[934,7969,3704],{"class":948},[934,7971,580],{"class":944},[934,7973,2919],{"class":948},[934,7975,7976,7978,7981,7983,7985,7987,7990,7992],{"class":936,"line":1064},[934,7977,7639],{"class":948},[934,7979,7980],{"class":940},"type",[934,7982,3704],{"class":948},[934,7984,891],{"class":948},[934,7986,3292],{"class":948},[934,7988,7989],{"class":1048},"http",[934,7991,3704],{"class":948},[934,7993,7656],{"class":948},[934,7995,7996,7998,8000,8002,8004,8006,8008,8010],{"class":936,"line":1071},[934,7997,7639],{"class":948},[934,7999,865],{"class":940},[934,8001,3704],{"class":948},[934,8003,891],{"class":948},[934,8005,3292],{"class":948},[934,8007,7689],{"class":1048},[934,8009,3704],{"class":948},[934,8011,7656],{"class":948},[934,8013,8014,8016,8019,8021,8023,8025,8027],{"class":936,"line":1078},[934,8015,7639],{"class":948},[934,8017,8018],{"class":940},"auth",[934,8020,3704],{"class":948},[934,8022,891],{"class":948},[934,8024,3292],{"class":948},[934,8026,7886],{"class":1048},[934,8028,1959],{"class":948},[934,8030,8031],{"class":936,"line":1927},[934,8032,7759],{"class":948},[430,8034,7917,8035,7921,8038,1372,8040],{},[495,8036,8037],{},"kimi mcp auth trek",[441,8039,7924],{},[433,8041],{"src":7928,"alt":7929,"style":8042},"max-width: 453px; width: 100%; height: auto; border-radius: 8px; margin: 1.5rem auto; display: block;",[430,8044,8045],{},"Nach der Autorisierung werden die verfügbaren Tools aufgelistet:",[433,8047],{"src":8048,"alt":8049,"style":6595},"https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002Fkimi-cli-mcp-authorized-tools-list.webp","Kimi-CLI zeigt verfügbare Tools nach erfolgreicher Autorisierung an",[881,8051,8053],{"id":8052},"_7-mobile-nutzererfahrung","7. Mobile Nutzererfahrung",[430,8055,8056],{},"TREK ist eine PWA (Progressive Web App) auf Mobilgeräten. Ein Service Worker cacht Kartenkacheln und API-Daten, sodass deine Reiseroute auch offline lesbar bleibt. Bei Push-Benachrichtigungen kann es im Vergleich zu einer nativen App jedoch zu gewissen Verzögerungen kommen.",[881,8058,2575],{"id":2574},[430,8060,8061],{},"Die Anbindung von KI-Agents über MCP erspart viel mühsame Arbeit beim Erfassen von Flug- und Unterkunftsbuchungen. Darüber hinaus können Agents interessante Orte basierend auf deinen Reisedaten und der Jahreszeit vorschlagen. Ein einziges Gespräch mit einem KI-Agenten kann die gesamte Kette abdecken – von der Recherche und dem Erstellen der Reiseroute bis hin zur Budgetverfolgung und dem Packen.",[430,8063,8064],{},"Es gibt ein paar kleinere technische Mängel. Beispielsweise wird beim Importieren von Buchungen aus PDFs standardmäßig die Basiswährung der Reise und nicht die tatsächlich bezahlte Währung verwendet. Auch verschwindet beim Erstellen einer neuen Liste in Collections ein während der Erstellung hinzugefügtes Titelbild beim Speichern, obwohl es beim anschließenden Bearbeiten manuell wieder hinzugefügtes werden kann.",[430,8066,8067,8068,8073],{},"Es gibt eine gewisse technische Hürde, da du die Anwendung auf einem eigenen Server hosten musst. TREK ist in erster Linie für Menschen gedacht, die häufig reisen und hohe Ansprüche an die Organisation ihrer Reisedaten haben. Wir empfehlen, die offizielle Demo unter ",[444,8069,8072],{"href":8070,"rel":8071},"https:\u002F\u002Fdemo.liketrek.com\u002F",[448],"demo.liketrek.com"," auszuprobieren, bevor du ein Self-Hosting in Betracht ziehst.",[881,8075,1615],{"id":1614},[485,8077,8078,8085,8092],{},[488,8079,8080],{},[444,8081,8084],{"href":8082,"rel":8083},"https:\u002F\u002Fgithub.com\u002Fliketrek\u002FTREK\u002Fwiki\u002FQuick-Start",[448],"TREK Quick Start",[488,8086,8087],{},[444,8088,8091],{"href":8089,"rel":8090},"https:\u002F\u002Fgithub.com\u002Fliketrek\u002FTREK\u002Fwiki\u002FTroubleshooting",[448],"TREK Troubleshooting",[488,8093,8094],{},[444,8095,8098],{"href":8096,"rel":8097},"https:\u002F\u002Fgithub.com\u002Fliketrek\u002FTREK\u002Fwiki\u002FMCP-Scopes",[448],"TREK MCP Scopes",[1643,8100,8101],{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":425,"searchDepth":1064,"depth":1071,"links":8103},[8104,8109,8110,8120,8128,8134,8140,8141,8142],{"id":6289,"depth":1071,"text":6290,"children":8105},[8106,8107,8108],{"id":6293,"depth":1078,"text":6294},{"id":6439,"depth":1078,"text":6440},{"id":6471,"depth":1078,"text":6472},{"id":6616,"depth":1071,"text":6617},{"id":6659,"depth":1071,"text":6660,"children":8111},[8112,8113,8114,8115,8116,8117,8118,8119],{"id":6761,"depth":1078,"text":6762},{"id":6772,"depth":1078,"text":6773},{"id":6874,"depth":1078,"text":6875},{"id":6894,"depth":1078,"text":6895},{"id":6929,"depth":1078,"text":6930},{"id":6951,"depth":1078,"text":6952},{"id":6968,"depth":1078,"text":6969},{"id":6979,"depth":1078,"text":6980},{"id":7009,"depth":1071,"text":7010,"children":8121},[8122,8123,8124,8125,8126,8127],{"id":7016,"depth":1078,"text":7017},{"id":7049,"depth":1078,"text":7050},{"id":7120,"depth":1078,"text":7121},{"id":7142,"depth":1078,"text":7143},{"id":7161,"depth":1078,"text":7162},{"id":7186,"depth":1078,"text":7187},{"id":7217,"depth":1071,"text":7218,"children":8129},[8130,8131,8132,8133],{"id":7237,"depth":1078,"text":7238},{"id":7334,"depth":1078,"text":7335},{"id":7396,"depth":1078,"text":7397},{"id":7496,"depth":1078,"text":7497},{"id":7517,"depth":1071,"text":7518,"children":8135},[8136,8137,8138,8139],{"id":7528,"depth":1078,"text":7529},{"id":7551,"depth":1078,"text":7552},{"id":7832,"depth":1078,"text":7833},{"id":7945,"depth":1078,"text":7946},{"id":8052,"depth":1071,"text":8053},{"id":2574,"depth":1071,"text":2575},{"id":1614,"depth":1071,"text":1615},[8144,1663],"travel","2026-09-01","Erfahre, wie du TREK mit Docker deployst, es über Cloudflare R2 und Caddy absicherst und KI-Agents via MCP für eine nahtlose Reiseplanung effizient nutzt.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSelf%20hosted%20travel%20planner%20TREK\u002FDE-Self-hosted-travel-planner-TREK.webp","Eine hochwertige minimalistische 3D-Illustration des selbstgehosteten Reiseplaner-Dashboards TREK auf einem warmen Pergamenthintergrund.",{"schemaOrg":8150,"robots":1697,"sitemap":8154},[8151,8152],{"@type":1676,"headline":6275,"description":8146},{"@type":4098,"headline":8153,"description":8146},"So hostest du TREK selbst: Der ultimative Reiseplaner",{"lastmod":8145},{"title":8153,"description":8146,"ogTitle":6275,"ogDescription":8146,"twitterTitle":6275,"twitterDescription":8146},"de\u002Farticle\u002Fself-hosted-travel-planner-trek",[6269,8158,6270,6271,6961],"TREK","jYciiMlr9bzEFNrN05xWHA5roKqCLmX_N78JlYTIoPQ",{"id":8161,"title":8162,"author":425,"body":8163,"category":8716,"date":8717,"description":8718,"extension":1668,"image":8719,"imageAlt":8720,"isPublished":1067,"meta":8721,"minRead":1078,"navigation":1067,"path":13,"seo":8725,"stem":8727,"tags":8728,"updatedAt":1706,"__hash__":8732},"article\u002Fde\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts.md","Wie KI-Agenten-Skills Nuxt-Scaffolding-Scripts ersetzen",{"type":427,"value":8164,"toc":8709},[8165,8179,8183,8186,8282,8285,8313,8319,8323,8338,8355,8359,8370,8531,8535,8617,8621,8629,8649,8656,8671,8681,8684,8690,8693,8698,8706],[430,8166,8167,8168,576,8171,8174,8175,8178],{},"Wenn wir ein neues Projekt mit dem Nuxt-Framework starten, müssen wir mühsame Schritte wie das Installieren von Modulen und das Einrichten von Konfigurationen wie ",[495,8169,8170],{},"nuxt.config.ts",[495,8172,8173],{},"wrangler.jsonc"," durchlaufen. Ein Skript kann dieses Problem zwar lösen, stößt jedoch schnell an seine Grenzen, sobald die Anforderungen variieren. Aus diesem Grund haben wir untersucht, wie wir Skripte durch einen ",[441,8176,8177],{},"KI-Agenten-Skill"," (Agent Skill) ersetzen können.",[474,8180,8182],{"id":8181},"was-traditionelle-shell-skripte-gut-können","Was traditionelle Shell-Skripte gut können",[430,8184,8185],{},"Ein Skript eignet sich hervorragend, um eine feste Reihe von Anweisungen nacheinander mit fest im Code verankerten Entscheidungen (Hardcoding) auszuführen.",[926,8187,8189],{"className":1035,"code":8188,"language":1037,"meta":425,"style":425},"#!\u002Fusr\u002Fbin\u002Fenv bash\nset -e\n\nnpx nuxi@latest init \"$1\" --template minimal --packageManager pnpm --no-gitInit -M @nuxt\u002Fui,@nuxthub\u002Fcore,@vueuse\u002Fnuxt\n\ncd \"$1\"\n\ncp ~\u002Ftemplates\u002Fnuxt.config.ts .\ncp ~\u002Ftemplates\u002Fwrangler.jsonc .\n",[495,8190,8191,8196,8203,8207,8246,8250,8260,8264,8273],{"__ignoreMap":425},[934,8192,8193],{"class":936,"line":937},[934,8194,8195],{"class":1074},"#!\u002Fusr\u002Fbin\u002Fenv bash\n",[934,8197,8198,8201],{"class":936,"line":1064},[934,8199,8200],{"class":965},"set",[934,8202,5216],{"class":1048},[934,8204,8205],{"class":936,"line":1071},[934,8206,1068],{"emptyLinePlaceholder":1067},[934,8208,8209,8211,8214,8217,8219,8223,8225,8228,8231,8234,8237,8240,8243],{"class":936,"line":1078},[934,8210,7651],{"class":1044},[934,8212,8213],{"class":1048}," nuxi@latest",[934,8215,8216],{"class":1048}," init",[934,8218,3292],{"class":948},[934,8220,8222],{"class":8221},"sHdIc","$1",[934,8224,3704],{"class":948},[934,8226,8227],{"class":1048}," --template",[934,8229,8230],{"class":1048}," minimal",[934,8232,8233],{"class":1048}," --packageManager",[934,8235,8236],{"class":1048}," pnpm",[934,8238,8239],{"class":1048}," --no-gitInit",[934,8241,8242],{"class":1048}," -M",[934,8244,8245],{"class":1048}," @nuxt\u002Fui,@nuxthub\u002Fcore,@vueuse\u002Fnuxt\n",[934,8247,8248],{"class":936,"line":1927},[934,8249,1068],{"emptyLinePlaceholder":1067},[934,8251,8252,8254,8256,8258],{"class":936,"line":1932},[934,8253,2820],{"class":965},[934,8255,3292],{"class":948},[934,8257,8222],{"class":8221},[934,8259,1959],{"class":948},[934,8261,8262],{"class":936,"line":1938},[934,8263,1068],{"emptyLinePlaceholder":1067},[934,8265,8266,8268,8271],{"class":936,"line":2275},[934,8267,2837],{"class":1044},[934,8269,8270],{"class":1048}," ~\u002Ftemplates\u002Fnuxt.config.ts",[934,8272,4912],{"class":1048},[934,8274,8275,8277,8280],{"class":936,"line":2286},[934,8276,2837],{"class":1044},[934,8278,8279],{"class":1048}," ~\u002Ftemplates\u002Fwrangler.jsonc",[934,8281,4912],{"class":1048},[430,8283,8284],{},"Dieses Skript funktioniert einwandfrei, bis Folgendes passiert:",[485,8286,8287,8293,8303],{},[488,8288,8289,8292],{},[441,8290,8291],{},"Starre Standardwerte."," Das Skript schreibt das Nuxt UI-Modul fest vor. Was aber, wenn wir das Ant Design UI-Modul verwenden möchten? Jede neue Moduloption erfordert ein weiteres Argument vom Benutzer.",[488,8294,8295,8298,8299,8302],{},[441,8296,8297],{},"Kein Verständnis für die Benutzerabsicht."," \"Baue mir einen Blog\" erfordert ",[495,8300,8301],{},"@nuxt\u002Fcontent","; \"baue mir eine Website mit Newslettern\" benötigt Cloudflare D1 + Drizzle. Ein Skript kann diesen Unterschied nicht erkennen — jede Variation erfordert ein neues Skript.",[488,8304,8305,8308,8309,8312],{},[441,8306,8307],{},"Geräuschloses Veralten."," Nuxt-Konventionen ändern sich zwischen Major-Versionen. Nuxt 4 hat das Quellverzeichnis auf ",[495,8310,8311],{},"app\u002F"," geändert. Ein für Nuxt 3 geschriebenes Skript scaffoldet im Hintergrund die falsche Struktur, ohne den Benutzer jemals zu warnen.",[430,8314,8315,8318],{},[441,8316,8317],{},"Projekt-Scaffolding"," (Initialisierung) ist ein Entscheidungsproblem, kein Ausführungsproblem. Das Skript lässt sich nicht skalieren, wenn die Anzahl der Entscheidungen steigt.",[474,8320,8322],{"id":8321},"warum-ein-ki-agenten-skill-statt-traditioneller-skripte","Warum ein KI-Agenten-Skill statt traditioneller Skripte?",[430,8324,8325,8326,8329,8330,8333,8334,8337],{},"Ein Agenten-Skill ist kein Code, der einfach ausgeführt wird, sondern ein ",[441,8327,8328],{},"Wissenspaket, dem der KI-Agent folgt",". Er enthält eine ",[495,8331,8332],{},"SKILL.md","-Datei und kann beliebige andere Dateien enthalten, die für die Aufgabe benötigt werden (wie Referenzdokumente, Vorlagen und ausführbare Skripte). Der Artikel ",[444,8335,8336],{"href":351},"KI-Agenten-Skills: Was sie sind und wie man sie erstellt"," erklärt, wie ein Agenten-Skill funktioniert. Ein Skill bewahrt die Zuverlässigkeit eines Skripts und fügt die klugen Abwägungen hinzu, die einem herkömmlichen Skript fehlen:",[485,8339,8340,8343,8346,8349,8352],{},[488,8341,8342],{},"Er schließt auf die Absicht des Benutzers zurück, um zu bestimmen, ob die App eine Datenbank benötigt.",[488,8344,8345],{},"Er entscheidet anhand der angegebenen Liste, welche optionalen Module benötigt werden. Beispielsweise sind Nuxt Content, i18n und Analytics optional und werden nur auf Wunsch des Benutzers integriert.",[488,8347,8348],{},"Er passt sich dem aktuellen Ökosystem an, indem er das neueste Nuxt-Framework, NuxtHub für Cloudflare-Bindings und Wrangler für das Deployment nutzt.",[488,8350,8351],{},"Er repariert sich selbst, falls ein Schritt fehlschlägt.",[488,8353,8354],{},"Er prüft das Projekt anhand einer abschließenden Checkliste, bevor er es an den Benutzer übergibt.",[474,8356,8358],{"id":8357},"ein-blick-hinter-die-kulissen-unseres-nuxt-cloudflare-scaffolding-skills","Ein Blick hinter die Kulissen unseres Nuxt- & Cloudflare-Scaffolding-Skills",[430,8360,8361,8362,8369],{},"Der Skill ",[444,8363,8366],{"href":8364,"rel":8365},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fscaffold-nuxt-cloudflare-app-skill",[448],[495,8367,8368],{},"scaffold-nuxt-cloudflare-app-skill"," führt durch eine produktionsreife Initialisierung:",[533,8371,8372,8403,8423,8447,8476,8511,8517],{},[488,8373,8374,8377,8378],{},[441,8375,8376],{},"Klärung von Unklarheiten",", die nicht automatisch abgeleitet werden können:\n",[485,8379,8380,8391,8394],{},[488,8381,8382,8383,8386,8387,8390],{},"Das UI-Kit (",[441,8384,8385],{},"Nuxt UI"," standardmäßig oder ",[441,8388,8389],{},"Antdv Next",");",[488,8392,8393],{},"Ob eine Datenbank erforderlich ist (wie Cloudflare D1);",[488,8395,8396,8397,1522,8400,8402],{},"Zusätzliche Module wie ",[495,8398,8399],{},"@nuxtjs\u002Fi18n",[495,8401,8301],{}," für CMS-Funktionen.",[488,8404,8405,760,8408,8411,8412,8414,8415,8418,8419,8422],{},[441,8406,8407],{},"Initialisierung der Basis-App",[495,8409,8410],{},"pnpm dlx nuxi@latest init"," für die neueste Version des Nuxt-Frameworks mit ",[495,8413,3594],{}," als Paketmanager. Anschließend werden Allowlists für native Builds konfiguriert, damit die Cloudflare-Build-Umgebung ",[495,8416,8417],{},"better-sqlite3","\u002F",[495,8420,8421],{},"sharp"," kompilieren kann.",[488,8424,8425,580,8428,1522,8431,744,8434,744,8437,744,8440,744,8443,8446],{},[441,8426,8427],{},"Installation von Modulen basierend auf einer Entscheidungstabelle",[495,8429,8430],{},"@nuxt\u002Fui",[495,8432,8433],{},"@antdv-next\u002Fnuxt",[495,8435,8436],{},"@nuxt\u002Fimage",[495,8438,8439],{},"@nuxtjs\u002Fseo",[495,8441,8442],{},"@nuxthub\u002Fcore",[495,8444,8445],{},"@vueuse\u002Fnuxt"," sowie Drizzle\u002FD1, Nuxt Content und i18n nur bei Auswahl.",[488,8448,8449,1372,8452],{},[441,8450,8451],{},"Aufbau der Verzeichnisstruktur",[485,8453,8454,8458,8463,8468,8473],{},[488,8455,8456],{},[495,8457,8311],{},[488,8459,8460],{},[495,8461,8462],{},"server\u002F",[488,8464,8465],{},[495,8466,8467],{},"shared\u002F",[488,8469,8470],{},[495,8471,8472],{},"tests\u002F",[488,8474,8475],{},"Konfigurationsdateien im Root-Verzeichnis.",[488,8477,8478,1372,8483],{},[441,8479,8480,8481],{},"Konfiguration von ",[495,8482,8170],{},[485,8484,8485,8494,8501,8506],{},[488,8486,8487,8418,8490,8493],{},[495,8488,8489],{},"site.url",[495,8491,8492],{},"site.name"," für SEO",[488,8495,8496,8497,8500],{},"NuxtHub ",[495,8498,8499],{},"hub","-Block für Cloudflare",[488,8502,8503],{},[495,8504,8505],{},"routeRules",[488,8507,8508],{},[495,8509,8510],{},"compatibilityDate",[488,8512,8513],{},[441,8514,8480,8515],{},[495,8516,8173],{},[488,8518,8519,8522,8523,8526,8527,8530],{},[441,8520,8521],{},"Einrichtung von Vitest und ESLint",", gefolgt von einer ",[441,8524,8525],{},"abschließenden Checkliste"," einschließlich ",[495,8528,8529],{},"pnpm install && pnpm dev",", bevor die Arbeit als erledigt gilt.",[474,8532,8534],{"id":8533},"shell-skripte-vs-ki-agenten-skills-ein-direkter-vergleich","Shell-Skripte vs. KI-Agenten-Skills: Ein direkter Vergleich",[604,8536,8537,8549],{},[607,8538,8539],{},[610,8540,8541,8543,8546],{},[613,8542],{},[613,8544,8545],{},"Skripte",[613,8547,8548],{},"Skills",[634,8550,8551,8562,8573,8584,8595,8606],{},[610,8552,8553,8556,8559],{},[639,8554,8555],{},"Benutzerabsicht",[639,8557,8558],{},"❌ starre Standardwerte",[639,8560,8561],{},"✅ passt sich der Anfrage an",[610,8563,8564,8567,8570],{},[639,8565,8566],{},"Entscheidungsfindung",[639,8568,8569],{},"nur bei vorprogrammierten Flags",[639,8571,8572],{},"✅ zur Laufzeit bewertet",[610,8574,8575,8578,8581],{},[639,8576,8577],{},"Versionsänderungen",[639,8579,8580],{},"manuelles Umschreiben",[639,8582,8583],{},"✅ prüft aktuellen Zustand",[610,8585,8586,8589,8592],{},[639,8587,8588],{},"Fehlerbehebung",[639,8590,8591],{},"stoppt",[639,8593,8594],{},"✅ repariert und fährt fort",[610,8596,8597,8600,8603],{},[639,8598,8599],{},"Ergebnisprüfung",[639,8601,8602],{},"❌",[639,8604,8605],{},"✅ abschließende Checkliste",[610,8607,8608,8611,8614],{},[639,8609,8610],{},"Wartungsaufwand",[639,8612,8613],{},"Flag-Wildwuchs, Versions-Updates",[639,8615,8616],{},"Bearbeiten von Markdown, nicht Code",[474,8618,8620],{"id":8619},"wie-man-ki-agenten-skills-mit-der-npx-skills-cli-installiert","Wie man KI-Agenten-Skills mit der npx skills CLI installiert",[430,8622,8623,8624,891],{},"Die Installation erfolgt über einen einzigen Befehl mit der ",[444,8625,8628],{"href":8626,"rel":8627},"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fskills",[448],"skills CLI",[926,8630,8632],{"className":1035,"code":8631,"language":1037,"meta":425,"style":425},"npx skills add https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fscaffold-nuxt-cloudflare-app-skill.git -g\n",[495,8633,8634],{"__ignoreMap":425},[934,8635,8636,8638,8641,8643,8646],{"class":936,"line":937},[934,8637,7651],{"class":1044},[934,8639,8640],{"class":1048}," skills",[934,8642,1058],{"class":1048},[934,8644,8645],{"class":1048}," https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fscaffold-nuxt-cloudflare-app-skill.git",[934,8647,8648],{"class":1048}," -g\n",[430,8650,8651,8652],{},"Die CLI klont das Repository, findet den Skill und fragt, welcher der 77 unterstützten Agenten ihn erhalten soll:\n",[433,8653],{"alt":8654,"src":8655},"Befehlszeilenschnittstelle zur Veranschaulichung der Installation des Nuxt-Scaffolding-Skills über den CLI-Befehl npx skills add","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20AI%20Agent%20Skills%20Replace%20Nuxt%20App%20Scaffolding%20Scripts\u002Fnpx-skills-add-scaffold-nuxt-installation.webp",[430,8657,8658,8659,8662,8663,8666,8667],{},"Wir haben uns für ",[441,8660,8661],{},"Symlink"," entschieden (die empfohlene Methode), wodurch der Skill einmalig in ",[495,8664,8665],{},"~\u002F.agents\u002Fskills"," installiert wird und alle ausgewählten Agenten auf diese eine Kopie verweisen.\n",[433,8668],{"alt":8669,"src":8670},"Terminal-Bildschirm mit der Installationszusammenfassung und Symlink-Einrichtung für die zentralisierten Agenten-Skills","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20AI%20Agent%20Skills%20Replace%20Nuxt%20App%20Scaffolding%20Scripts\u002Fnpx-skills-installation-summary-details.webp",[485,8672,8673],{},[488,8674,8675],{},[901,8676,8677,8678,552],{},"Weitere Informationen zur Zentralisierung von Agenten-Skills in einer Single Source of Truth finden Sie in diesem Artikel: ",[444,8679,8680],{"href":359},"Fragmentierung von KI-Agenten-Skills mit npx skills lösen",[430,8682,8683],{},"Das Öffnen von Claude Code bestätigt, dass der Skill erfolgreich installiert wurde.",[430,8685,8686],{},[433,8687],{"alt":8688,"src":8689},"Befehlszeilenschnittstelle von Claude Code, die den neu installierten und einsatzbereiten Slash-Befehl scaffold-nuxt anzeigt","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20AI%20Agent%20Skills%20Replace%20Nuxt%20App%20Scaffolding%20Scripts\u002Fclaude-code-scaffold-nuxt-slash-command-active.webp",[430,8691,8692],{},"Ab hier reicht ein Prompt in natürlicher Sprache völlig aus:",[2510,8694,8695],{},[430,8696,8697],{},"\"Scaffold a new Nuxt app deployed to Cloudflare Workers — Nuxt UI, a blog section, and a D1 database\"",[430,8699,8700,8701,8705],{},"Der Skill ist Open Source; besuchen Sie das ",[444,8702,8704],{"href":8364,"rel":8703},[448],"GitHub-Repository"," und probieren Sie ihn aus!",[1643,8707,8708],{},"html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":425,"searchDepth":1064,"depth":1071,"links":8710},[8711,8712,8713,8714,8715],{"id":8181,"depth":1064,"text":8182},{"id":8321,"depth":1064,"text":8322},{"id":8357,"depth":1064,"text":8358},{"id":8533,"depth":1064,"text":8534},{"id":8619,"depth":1064,"text":8620},[1663],"2026-08-25","Scaffolden Sie Nuxt auf Cloudflare Workers mühelos. Erfahren Sie, warum wir fragile Skripte durch intelligente KI-Skills ersetzt haben und npx skills nutzen.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20AI%20Agent%20Skills%20Replace%20Nuxt%20App%20Scaffolding%20Scripts\u002FDE-How-AI-Agent-Skills-Replace-Nuxt-App-Scaffolding-Scripts.webp","Nuxt-Scaffolding auf Cloudflare: AI-Skills vs. Skripte - Vergleich zwischen fragilen Shell-Skripten und intelligenten KI-Agenten-Skills.",{"schemaOrg":8722,"robots":1697,"sitemap":8724},[8723],{"@type":1674,"headline":8162,"description":8718,"image":8719},{"lastmod":8717},{"title":8726,"description":8718,"ogTitle":8162,"ogDescription":8718,"twitterTitle":8162,"twitterDescription":8718},"Nuxt-Scaffolding auf Cloudflare: AI-Skills vs. Skripte","de\u002Farticle\u002Fhow-ai-agent-skills-replace-nuxt-app-scaffolding-scripts",[8729,6271,8730,8731],"Nuxt","AI Agent","Scaffolding","0mGFLmxeOeovpsKYY2EUPNUroEwDAtghurq2pmhG4Qc",{"id":8734,"title":8735,"author":1706,"body":8736,"category":9496,"date":9498,"description":9499,"extension":1668,"image":9500,"imageAlt":9501,"isPublished":1067,"meta":9502,"minRead":2275,"navigation":1067,"path":33,"seo":9507,"stem":9508,"tags":9509,"updatedAt":1706,"__hash__":9511},"article\u002Fde\u002Farticle\u002Fuse-cloudflare-as-ai-memory.md","Persistentes KI-Gedächtnis auf Cloudflare aufbauen",{"type":427,"value":8737,"toc":9478},[8738,8742,8745,8748,8752,8755,8769,8773,8780,8794,8797,8800,8844,8848,8930,8934,8959,9056,9067,9071,9076,9116,9141,9145,9150,9217,9222,9226,9258,9264,9302,9306,9338,9342,9350,9354,9384,9388,9428,9430,9433,9436,9439,9441,9475],[474,8739,8741],{"id":8740},"die-bedeutung-eines-persistenten-ki-gedächtnisses-für-agenten","Die Bedeutung eines persistenten KI-Gedächtnisses für Agenten",[430,8743,8744],{},"Da KI-Assistenten immer stärker in unseren Alltag integriert werden, stehen wir häufig vor dem Problem des leeren Kontexts (Blank-Context-Problem). Entscheidungen, die letzte Woche getroffen wurden, sind vergessen, was uns dazu zwingt, immer wieder dieselben Details zum Tech-Stack einzugeben und die Benutzerpräferenzen in jeder neuen Sitzung neu festzulegen.",[430,8746,8747],{},"Anstatt jedes Mal bei Null anzufangen, müssen wir ein Gedächtnissystem aufbauen, das sich weiterentwickelt, die Entscheidungen eines Benutzers kontinuierlich versteht und die Notwendigkeit einer ständigen Kontextwiederholung beseitigt.",[474,8749,8751],{"id":8750},"selbstgehostete-vs-integrierte-ki-gedächtnissysteme","Selbstgehostete vs. integrierte KI-Gedächtnissysteme",[430,8753,8754],{},"Viele KI-Agenten verfügen über ein integriertes Gedächtnis, aber wir nutzen selten nur einen einzigen Agenten für alle Zwecke. Wir verwenden Claude für den Entwurf und die Architektur eines Projekts, Kimi für die Programmierung und ChatGPT für die allgemeine Recherche. Der Kontext wird nicht zwischen diesen verschiedenen Agenten geteilt; er bleibt in jedem Tool isoliert.",[430,8756,8757,8758,8763,8764,8768],{},"Aus Sicht der Softwareentwicklung vertrauen wir keinen Blackboxes. Wir benötigen ein KI-Gedächtnissystem, das beobachtbar, überprüfbar und vollständig unter unserer Kontrolle ist. Das Open-Source-Projekt ",[444,8759,8762],{"href":8760,"rel":8761},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fsecond-brain-cloudflare\u002Ftree\u002Fmain",[448],"Second Brain",", ein Fork von ",[444,8765,8766],{"href":8766,"rel":8767},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare",[448],", bietet ein persistentes und selbstgehostetes Gedächtnissystem mit Unterstützung für das Model Context Protocol (MCP). Jeder kompatible KI-Agent wie Claude, ChatGPT oder Kimi Code kann somit denselben einheitlichen Kontext nutzen.",[474,8770,8772],{"id":8771},"so-bauen-sie-ein-second-brain-ki-gedächtnis-auf-cloudflare-auf","So bauen Sie ein Second Brain KI-Gedächtnis auf Cloudflare auf",[430,8774,8775,8776,8779],{},"Das Second Brain-Gedächtnissystem wird auf ",[441,8777,8778],{},"Cloudflare Workers"," bereitgestellt, was eine global verteilte Serverless-Infrastruktur mit extrem niedriger Latenz bietet. Dadurch können Speicherabrufe (Recall) und andere Operationen nahezu verzögerungsfrei innerhalb der logischen Schleife der KI ausgeführt werden.",[430,8781,8782,8783,8786,8787,8790,8791,8793],{},"Das Embedding-Modell von ",[441,8784,8785],{},"Workers AI"," wird zur Generierung der Vektoren verwendet. Diese Einbettungen werden in ",[441,8788,8789],{},"Cloudflare Vectorize"," gespeichert, einer hochgradig optimierten, global verteilten Vektordatenbank. ",[441,8792,8789],{}," führt Cosinus-Ähnlichkeitssuchen (Cosine Similarity) durch, um semantisch relevante Erinnerungen präzise zu identifizieren.",[430,8795,8796],{},"Second Brain verfügt zudem über intelligente Mechanismen zur Duplikaterkennung und -zusammenführung. Inhalte mit einer Ähnlichkeit von weniger als 85 % werden gespeichert; andernfalls werden sie blockiert oder als potenzielle Duplikate markiert. Längere Texte mit mehr als 1.600 Zeichen werden an Satzgrenzen oder Zeilenumbrüchen aufgeteilt, wobei ein Überlappungsbereich (Overlap) von 200 Zeichen beibehalten wird, um den Verlust von Kontext zu verhindern. Jeder Abschnitt wird anschließend vektorisiert, was eine hochpräzise Zuordnung ermöglicht.",[430,8798,8799],{},"Die folgenden Werkzeuge werden als MCP-Schnittstellen für die direkte Nutzung durch KI-Agenten bereitgestellt:",[485,8801,8802,8808,8814,8820,8826,8832,8838],{},[488,8803,8804,8807],{},[495,8805,8806],{},"remember",": Speichert Ideen, Entscheidungen, Präferenzen und Projektkontexte.",[488,8809,8810,8813],{},[495,8811,8812],{},"append",": Fügt Aktualisierungen zu einer bestehenden Erinnerung hinzu.",[488,8815,8816,8819],{},[495,8817,8818],{},"update",": Ersetzt eine bestehende Erinnerung vollständig.",[488,8821,8822,8825],{},[495,8823,8824],{},"recall",": Findet Erinnerungen basierend auf ihrer semantischen Bedeutung anstatt exakter Formulierungen.",[488,8827,8828,8831],{},[495,8829,8830],{},"list_recent",": Listet die kürzlich gespeicherten Erinnerungen auf.",[488,8833,8834,8837],{},[495,8835,8836],{},"forget",": Löscht eine Erinnerung dauerhaft.",[488,8839,8840,8843],{},[495,8841,8842],{},"link\u002Fconnections",": Verknüpft zusammenhängende Erinnerungen (V2-Graphenfunktion).",[881,8845,8847],{"id":8846},"second-brain-auf-cloudflare-einrichten","Second Brain auf Cloudflare einrichten",[533,8849,8850,8868,8875,8882,8889,8896,8907,8913,8916,8923],{},[488,8851,8852,8853,8858,8859,8862,8863,8867],{},"Klicken Sie auf der Seite des ",[444,8854,8857],{"href":8855,"rel":8856},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fsecond-brain-cloudflare",[448],"Github-Repositorys"," auf ",[495,8860,8861],{},"Deploy to Cloudflare",". [[",[433,8864],{"alt":8865,"src":8866},"GitHub-Seite mit hervorgehobenem Deploy to Cloudflare Button","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fdeploy-to-cloudflare-button.webp","]]",[488,8869,8870,8871],{},"Füllen Sie das angezeigte Cloudflare Worker-Formular aus.\n",[433,8872],{"alt":8873,"src":8874},"Konfigurationsformular für die Bereitstellung von Cloudflare Workers","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-deployment-form.webp",[488,8876,8877,8878],{},"Geben Sie bei Dimensions '384' ein, wählen Sie bei Metric 'cosine' und klicken Sie auf den Button Deploy.\n",[433,8879],{"alt":8880,"src":8881},"Einstellungsbildschirm zur Erstellung der Cloudflare Vectorize Datenbank","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-vectorize-configuration.webp",[488,8883,8884,8885],{},"Folgendes ist die Übersicht Ihres Second Brain im Cloudflare Worker:\n",[433,8886],{"alt":8887,"src":8888},"Übersichts-Dashboard des bereitgestellten Second Brain Workers","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-second-brain-overview.webp",[488,8890,8891,8892],{},"Klicken Sie auf 'Settings' (Einstellungen) und anschließend auf das Bearbeiten-Symbol bei 'AUTH_TOKEN', um einen Sicherheitsschlüssel zu erstellen:\n",[433,8893],{"alt":8894,"src":8895},"Cloudflare Worker Variableneinstellungen mit Hervorhebung von AUTH_TOKEN","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-auth-token-settings.webp",[488,8897,8898,8899,8903],{},"Klicken Sie auf den Link 'Rotate', um einen neuen Wert einzugeben: ",[433,8900],{"alt":8901,"src":8902},"Bearbeitungs- und Rotationsbildschirm für die AUTH_TOKEN-Variable","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-auth-token-rotate.webp",[433,8904],{"alt":8905,"src":8906},"Eingabe der generierten Zufallszeichenfolge in das AUTH_TOKEN-Wertfeld","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fcloudflare-worker-auth-token-value-input.webp",[488,8908,3406,8909,8912],{},[495,8910,8911],{},"openssl rand -base64 32"," im macOS-Terminal aus, um einen sicheren Zufallswert zu generieren, und fügen Sie diesen in das Eingabefeld 'Value' ein.",[488,8914,8915],{},"Klicken Sie auf den Button 'Deploy', um den neuen Wert für 'AUTH_TOKEN' zu speichern.",[488,8917,8918,8919],{},"Öffnen Sie die URL Ihres Second Brain Workers im Webbrowser.\n",[433,8920],{"alt":8921,"src":8922},"Anmeldebildschirm der Second Brain Web-Benutzeroberfläche mit Bearer-Token-Eingabe","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fsecond-brain-web-ui-login.webp",[488,8924,8925,8926,8929],{},"Tragen Sie das erstellte 'AUTH_TOKEN' im Feld ",[495,8927,8928],{},"Bearer token"," ein und klicken Sie auf 'Connect', um sich auf der Web-Benutzeroberfläche (Web UI) anzumelden.",[881,8931,8933],{"id":8932},"claude-desktop-via-mcp-integrieren","Claude Desktop via MCP integrieren",[533,8935,8936,8943,8950],{},[488,8937,8938,8939],{},"Klicken Sie im Claude Desktop auf 'Customize' (Anpassen).\n",[433,8940],{"alt":8941,"src":8942},"Claude Desktop Benutzeroberfläche mit Verweis auf den Customize Button","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-customize-button.webp",[488,8944,8945,8946],{},"Klicken Sie auf 'Developer', um die MCP-Server-Konfigurationsdatei manuell zu bearbeiten:\n",[433,8947],{"alt":8948,"src":8949},"Claude Desktop Entwickler-Einstellungsmenü für den Zugriff auf die MCP-Konfiguration","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-developer-menu.webp",[488,8951,8952,8953,8955,8956,3482],{},"Fügen Sie den folgenden Code-Block zum Abschnitt ",[495,8954,7615],{}," in der Datei ",[495,8957,8958],{},"claude_desktop_config.json",[926,8960,8962],{"className":2910,"code":8961,"language":2912,"meta":425,"style":425},"    \"second-brain\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"mcp-remote\",\n        \"https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp\",\n        \"--header\",\n        \"Authorization: Bearer \u003Cyour-token>\"\n      ]\n    }\n",[495,8963,8964,8977,8995,9007,9017,9028,9039,9048,9052],{"__ignoreMap":425},[934,8965,8966,8968,8971,8973,8975],{"class":936,"line":937},[934,8967,7626],{"class":948},[934,8969,8970],{"class":1048},"second-brain",[934,8972,3704],{"class":948},[934,8974,580],{"class":944},[934,8976,2919],{"class":948},[934,8978,8979,8981,8983,8985,8987,8989,8991,8993],{"class":936,"line":1064},[934,8980,7639],{"class":948},[934,8982,7642],{"class":940},[934,8984,3704],{"class":948},[934,8986,891],{"class":948},[934,8988,3292],{"class":948},[934,8990,7651],{"class":1048},[934,8992,3704],{"class":948},[934,8994,7656],{"class":948},[934,8996,8997,8999,9001,9003,9005],{"class":936,"line":1071},[934,8998,7639],{"class":948},[934,9000,7663],{"class":940},[934,9002,3704],{"class":948},[934,9004,891],{"class":948},[934,9006,7670],{"class":948},[934,9008,9009,9011,9013,9015],{"class":936,"line":1078},[934,9010,7675],{"class":948},[934,9012,7678],{"class":1048},[934,9014,3704],{"class":948},[934,9016,7656],{"class":948},[934,9018,9019,9021,9024,9026],{"class":936,"line":1927},[934,9020,7675],{"class":948},[934,9022,9023],{"class":1048},"https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp",[934,9025,3704],{"class":948},[934,9027,7656],{"class":948},[934,9029,9030,9032,9035,9037],{"class":936,"line":1932},[934,9031,7675],{"class":948},[934,9033,9034],{"class":1048},"--header",[934,9036,3704],{"class":948},[934,9038,7656],{"class":948},[934,9040,9041,9043,9046],{"class":936,"line":1938},[934,9042,7675],{"class":948},[934,9044,9045],{"class":1048},"Authorization: Bearer \u003Cyour-token>",[934,9047,1959],{"class":948},[934,9049,9050],{"class":936,"line":2275},[934,9051,7754],{"class":948},[934,9053,9054],{"class":936,"line":2286},[934,9055,7759],{"class":948},[430,9057,9058,9062,9063],{},[433,9059],{"alt":9060,"src":9061},"Claude Desktop MCP-Konfigurations-JSON mit dem Second Brain-Server","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-mcp-config-json.webp","\n4. Starten Sie Claude Desktop neu und überprüfen Sie die Liste der 'Local MCP servers'. Der Status sollte 'running' (aktiv) anzeigen.\n",[433,9064],{"alt":9065,"src":9066},"Claude Desktop zeigt den Status Aktiv für den Second Brain MCP-Server an","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-mcp-status-running.webp",[881,9068,9070],{"id":9069},"claude-code-via-mcp-integrieren","Claude Code via MCP integrieren",[485,9072,9073],{},[488,9074,9075],{},"Führen Sie den folgenden Befehl im Terminal aus, um den neuen MCP-Server hinzuzufügen:",[926,9077,9079],{"className":2305,"code":9078,"language":2307,"meta":425,"style":425},"claude mcp add --transport http second-brain https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp\n",[495,9080,9081],{"__ignoreMap":425},[934,9082,9083,9086,9089,9091,9094,9097,9100,9103,9105,9108,9111,9113],{"class":936,"line":937},[934,9084,9085],{"class":1044},"claude",[934,9087,9088],{"class":1048}," mcp",[934,9090,1058],{"class":1048},[934,9092,9093],{"class":1048}," --transport",[934,9095,9096],{"class":1048}," http",[934,9098,9099],{"class":1048}," second-brain",[934,9101,9102],{"class":1048}," https:\u002F\u002F",[934,9104,5589],{"class":948},[934,9106,9107],{"class":1048},"your-worker-ur",[934,9109,9110],{"class":944},"l",[934,9112,1251],{"class":948},[934,9114,9115],{"class":1048},"\u002Fmcp\n",[485,9117,9118,9125],{},[488,9119,9120,9121,9124],{},"Claude Code erkennt automatisch, dass der Endpunkt OAuth erfordert, und öffnet eine Anmeldeseite im Webbrowser, auf der Sie Ihr ",[495,9122,9123],{},"AUTH_TOKEN"," bestätigen können.",[488,9126,9127,9128,9131,9132,9135,9136,552],{},"Erstellen Sie die Datei ",[495,9129,9130],{},"CLAUDE.md"," im Verzeichnis ",[495,9133,9134],{},"~\u002F.claude"," mit den Anweisungen aus ",[444,9137,9140],{"href":9138,"rel":9139},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fblob\u002Fmain\u002FAI_Instructions\u002FCLAUDE_INSTRUCTIONS.md",[448],"CLAUDE_INSTRUCTIONS.md",[881,9142,9144],{"id":9143},"gemini-cli-via-mcp-integrieren","Gemini CLI via MCP integrieren",[533,9146,9147],{},[488,9148,9149],{},"Fügen Sie die folgenden Einstellungen für den MCP-Server zu Ihrer Datei '.\u002F.gemini\u002Fsettings.json' hinzu:",[926,9151,9153],{"className":2910,"code":9152,"language":2912,"meta":425,"style":425},"    \"second-brain\": {\n      \"httpUrl\": \"https:\u002F\u002F\u003Cyour-worker-url>\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    }\n",[495,9154,9155,9167,9185,9197,9209,9213],{"__ignoreMap":425},[934,9156,9157,9159,9161,9163,9165],{"class":936,"line":937},[934,9158,7626],{"class":948},[934,9160,8970],{"class":1048},[934,9162,3704],{"class":948},[934,9164,580],{"class":944},[934,9166,2919],{"class":948},[934,9168,9169,9171,9173,9175,9177,9179,9181,9183],{"class":936,"line":1064},[934,9170,7639],{"class":948},[934,9172,7867],{"class":940},[934,9174,3704],{"class":948},[934,9176,891],{"class":948},[934,9178,3292],{"class":948},[934,9180,9023],{"class":1048},[934,9182,3704],{"class":948},[934,9184,7656],{"class":948},[934,9186,9187,9189,9191,9193,9195],{"class":936,"line":1071},[934,9188,7639],{"class":948},[934,9190,7886],{"class":940},[934,9192,3704],{"class":948},[934,9194,891],{"class":948},[934,9196,2949],{"class":948},[934,9198,9199,9201,9203,9205,9207],{"class":936,"line":1078},[934,9200,7675],{"class":948},[934,9202,7899],{"class":1044},[934,9204,3704],{"class":948},[934,9206,891],{"class":948},[934,9208,1383],{"class":948},[934,9210,9211],{"class":936,"line":1927},[934,9212,7910],{"class":948},[934,9214,9215],{"class":936,"line":1932},[934,9216,7759],{"class":948},[533,9218,9219],{"start":1064},[488,9220,9221],{},"Starten Sie das Gemini CLI.",[881,9223,9225],{"id":9224},"second-brain-in-ki-agenten-testen","Second Brain in KI-Agenten testen",[533,9227,9228,9238,9251],{},[488,9229,9230,9231,9233,9234],{},"Wenn Sie mit einer einfachen Marken-Farbpalette im ",[441,9232,7568],{}," beginnen, wird Second Brain standardmäßig nicht aufgerufen.\n",[433,9235],{"alt":9236,"src":9237},"Erster Test in Claude Desktop ohne aktives Second Brain KI-Gedächtnis","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-first-run-brand-palette.webp",[488,9239,9240,9241,1213,9244,9246,9247],{},"Bei der Verwendung einfacher Schlüsselwörter wie 'remember' werden lediglich die lokalen Standardwerkzeuge ",[495,9242,9243],{},"memory_user-edits",[441,9245,7568],{}," ausgeführt, nicht jedoch das Remote-Gedächtnis von Second Brain.\n",[433,9248],{"alt":9249,"src":9250},"Claude Desktop greift auf lokale integrierte Benutzeränderungen anstelle von Second Brain zurück","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-remember-built-in-tool-fallback.webp",[488,9252,9253,9254,9257],{},"Nach der Eingabe des folgenden Prompts im ",[441,9255,9256],{},"Claude Code"," wurde Second Brain erfolgreich aufgerufen:",[926,9259,9262],{"className":9260,"code":9261,"language":4654},[4652],"Remember Our brand palette uses `#1a1a2e` as primary, `#16213e` as secondary, and `#e94560` as accent. Never use pure black.\"\n",[495,9263,9261],{"__ignoreMap":425},[430,9265,9266,9270,9271,1372,9274,9278,9279,9282,9283,9285,9286,9290,9291,9294,9295,9278,9299],{},[433,9267],{"alt":9268,"src":9269},"Claude Code Terminalfenster zeigt erfolgreichen Aufruf des Second Brain MCP-Servers","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-code-second-brain-mcp-called.webp","\n4. Überprüfung der Farbeinstellungen direkt im Dashboard von ",[441,9272,9273],{},"Second Brain auf Cloudflare",[433,9275],{"alt":9276,"src":9277},"Verifizierung der gespeicherten Marken-Farbcodes in der Second Brain Web-Benutzeroberfläche","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fsecond-brain-web-ui-color-verification.webp","\n- ",[901,9280,9281],{},"Claude Code funktionierte nahtlos, da die Datei CLAUDE_INSTRUCTIONS.md im Projekt Regeln enthielt, die auf die Schlüsselwörter von 'Second Brain' verweisen.","\n5. Um diese Integration im ",[441,9284,7568],{}," zu nutzen, muss der Begriff 'Second Brain' explizit in Ihrem Prompt erwähnt werden, um das Speichern oder Auslesen auf dieser persistenten Gedächtnisschicht zu erzwingen.\n",[433,9287],{"alt":9288,"src":9289},"Explizites Aufrufen von Second Brain in Claude Desktop durch Nennung von Schlüsselwörtern","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fclaude-desktop-second-brain-explicit-trigger.webp","\n6. Gleiches gilt für das ",[441,9292,9293],{},"Gemini CLI",", bei dem Sie 'Second Brain' erwähnen müssen, um die zugehörigen MCP-Werkzeuge zu aktivieren.\n",[433,9296],{"alt":9297,"src":9298},"Gemini CLI Terminalfenster zeigt erfolgreiche Aufrufe des Second Brain MCP-Servers","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fgemini-cli-second-brain-trigger.webp",[901,9300,9301],{},"Durch das Hinzufügen ähnlicher Anweisungen zu Ihrer GEMINI.md, analog zur Funktionsweise von CLAUDE_INSTRUCTIONS.md, kann das System Second Brain im Hintergrund nutzen, ohne dass Sie die Schlüsselwörter explizit eingeben müssen.",[881,9303,9305],{"id":9304},"webbrowser-erweiterungen","Webbrowser-Erweiterungen",[485,9307,9308,9311],{},[488,9309,9310],{},"Erweiterungen sind für die Webbrowser Chrome, Firefox und Microsoft Edge verfügbar.",[488,9312,9313,9314],{},"Die Erweiterungen dienen folgenden Zwecken:\n",[485,9315,9316,9322,9328],{},[488,9317,9318,9321],{},[441,9319,9320],{},"Aktuelle Seite erfassen"," — speichert den Titel und die URL im Second Brain.",[488,9323,9324,9327],{},[441,9325,9326],{},"Ausgewählten Text erfassen"," — markieren Sie einen beliebigen Textabschnitt auf einer Webseite vor dem Klick auf das Erweiterungssymbol; der Textauszug wird zusammen mit Titel und URL gespeichert.",[488,9329,9330,9333,9334,9337],{},[441,9331,9332],{},"Notizen hinzufügen"," — schreiben Sie Notizen oder weisen Sie ",[495,9335,9336],{},"#hashtags"," direkt im Popup der Erweiterung zu; Hashtags werden automatisch als Tags indexiert.",[881,9339,9341],{"id":9340},"persönliches-wissen-mit-dem-obsidian-plugin-synchronisieren","Persönliches Wissen mit dem Obsidian-Plugin synchronisieren",[485,9343,9344,9347],{},[488,9345,9346],{},"Es ist ein Obsidian-Plugin verfügbar, um Notizen aus Ihrem Obsidian-Vault direkt mit Ihrem Second Brain auf Cloudflare zu synchronisieren.",[488,9348,9349],{},"Notizen können mit spezifischen Tags versehen werden, um sie für den persistenten Speicher freizugeben.",[2162,9351,9353],{"id":9352},"obsidian-plugin-installieren","Obsidian-Plugin installieren",[533,9355,9356,9363,9370,9377],{},[488,9357,9358,9359],{},"Öffnen Sie Obsidian → Settings → Community Plugins\n",[433,9360],{"alt":9361,"src":9362},"Obsidian-Einstellungsfenster mit Navigation zum Bereich Community Plugins","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-settings-community-plugins.webp",[488,9364,9365,9366],{},"Klicken Sie auf den Button 'Browse' (Durchsuchen).\n",[433,9367],{"alt":9368,"src":9369},"Suchseite für Obsidian-Community-Plugins mit Anzeige des Durchsuchen-Buttons","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-community-plugins-browse.webp",[488,9371,9372,9373],{},"Suchen Sie nach 'Second Brain Sync'.\n",[433,9374],{"alt":9375,"src":9376},"Suche nach dem Second Brain Sync Plugin im Obsidian-Marktplatz","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-community-plugins-search-second-brain.webp",[488,9378,9379,9380],{},"Klicken Sie auf 'Install' (Installieren) und anschließend auf 'Enable' (Aktivieren).\n",[433,9381],{"alt":9382,"src":9383},"Installation und Aktivierung des Second Brain Sync Plugins in Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-install-and-enable.webp",[2162,9385,9387],{"id":9386},"obsidian-plugin-konfigurieren","Obsidian-Plugin konfigurieren",[533,9389,9390,9393,9400,9407,9414,9421],{},[488,9391,9392],{},"Gehen Sie zu Obsidian → Settings → Second Brain Sync",[488,9394,9395,9396],{},"Tragen Sie Ihre 'URL' und Ihr 'Auth token' (Sicherheitsschlüssel) ein.\n",[433,9397],{"alt":9398,"src":9399},"Eingabe der Worker-URL und des Auth-Tokens in den Obsidian-Plugin-Einstellungen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-configuration-credentials.webp",[488,9401,9402,9403],{},"Klicken Sie auf den Button 'Test', um die Verbindung zu überprüfen.\n",[433,9404],{"alt":9405,"src":9406},"Obsidian-Plugin-Verbindungstest zeigt erfolgreiche Verifizierung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-connection-test-success.webp",[488,9408,9409,9410],{},"Konfigurieren Sie das Synchronisationsverhalten. Definieren Sie das Synchronisations-Tag unter 'Sync tag' und aktivieren Sie 'Auto-sync on save'.\n",[433,9411],{"alt":9412,"src":9413},"Konfigurieren des Synchronisations-Tags und Aktivieren von automatischem Speichern in Obsidian","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-plugin-sync-behavior-settings.webp",[488,9415,9416,9417],{},"Erstellen Sie eine neue Notiz in Ihrem Obsidian-Ordner mit dem Tag 'second-brain' (wie in den Einstellungen konfiguriert).\n",[433,9418],{"alt":9419,"src":9420},"Erstellen einer neuen Obsidian-Notiz mit dem Tag second-brain für die Synchronisation","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fobsidian-note-with-sync-tag.webp",[488,9422,9423,9424],{},"Die Notiz wurde gespeichert und sofort mit Ihrer Cloudflare-Instanz synchronisiert.\n",[433,9425],{"alt":9426,"src":9427},"Verifizierung der erfolgreich synchronisierten Obsidian-Notiz in der Second Brain Web-Benutzeroberfläche","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002Fsecond-brain-web-ui-synced-note-verification.webp",[474,9429,2575],{"id":2574},[430,9431,9432],{},"Second Brain bietet eine intelligente Open-Source-Lösung für eines der frustrierendsten Probleme im Bereich der KI: das Fehlen eines persistenten Gedächtnisses. Durch die Kombination des Projekts mit der skalierbaren Infrastruktur von Cloudflare erhalten wir eine vollständig selbstgehostete semantische Gedächtnisschicht, die global verteilt ist und extrem niedrige Latenzen aufweist. Dank der MCP-Unterstützung ist diese Wissensbasis nahtlos zwischen verschiedenen KI-Assistenten portierbar.",[430,9434,9435],{},"Die Integration des Obsidian-Plugins erweitert diese Architektur, indem sie Ihre persönliche Wissensdatenbank direkt mit der logischen Analyse der KI verbindet. Rohe Notizen werden in einen strukturierten Kontext umgewandelt, den KI-Agenten jederzeit semantisch verstehen und abfragen können.",[430,9437,9438],{},"Durch die Zusammenführung von Self-Hosting, semantischer Vektorsuche und offenen Integrationsstandards wie dem MCP beweist Second Brain, dass es weit mehr als nur ein Speicherort ist — es ist das praktische Fundament für den Aufbau eines eigenen, leistungsstarken KI-Ökosystems.",[474,9440,1615],{"id":1614},[485,9442,9443,9449,9455,9462,9469],{},[488,9444,9445],{},[444,9446,9447],{"href":9447,"rel":9448},"https:\u002F\u002Fwww.thesecondbrain.dev\u002F",[448],[488,9450,9451],{},[444,9452,9453],{"href":9453,"rel":9454},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fwiki\u002FHow-It-Works",[448],[488,9456,9457],{},[444,9458,9461],{"href":9459,"rel":9460},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fwiki\u002FConnect-to-AI-Clients",[448],"Connect to AI Clients",[488,9463,9464],{},[444,9465,9468],{"href":9466,"rel":9467},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-cloudflare\u002Fwiki\u002FObsidian-Plugin",[448],"Second Brain Obsidian Plugin",[488,9470,9471],{},[444,9472,9473],{"href":9473,"rel":9474},"https:\u002F\u002Fgithub.com\u002Frahilp\u002Fsecond-brain-obsidian-plugin",[448],[1643,9476,9477],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":425,"searchDepth":1064,"depth":1071,"links":9479},[9480,9481,9482,9494,9495],{"id":8740,"depth":1064,"text":8741},{"id":8750,"depth":1064,"text":8751},{"id":8771,"depth":1064,"text":8772,"children":9483},[9484,9485,9486,9487,9488,9489,9490],{"id":8846,"depth":1071,"text":8847},{"id":8932,"depth":1071,"text":8933},{"id":9069,"depth":1071,"text":9070},{"id":9143,"depth":1071,"text":9144},{"id":9224,"depth":1071,"text":9225},{"id":9304,"depth":1071,"text":9305},{"id":9340,"depth":1071,"text":9341,"children":9491},[9492,9493],{"id":9352,"depth":1078,"text":9353},{"id":9386,"depth":1078,"text":9387},{"id":2574,"depth":1064,"text":2575},{"id":1614,"depth":1064,"text":1615},[9497,1663],"cloudflare","2026-08-07","Erfahren Sie, wie Sie mit Second Brain & MCP ein persistentes, selbstgehostetes KI-Gedächtnis auf Cloudflare aufbauen. Nutzen Sie Kontext für Claude und Obsidian.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Cloudflare%20as%20AI%20memory\u002FDE-Use-Cloudflare-as-AI-memory.webp","Ein persistentes, selbstgehostetes KI-Gedächtnissystem auf Cloudflare Workers und Vectorize mit MCP-Unterstützung und Obsidian-Synchronisation.",{"schemaOrg":9503,"robots":1697,"sitemap":9506},[9504],{"@type":1674,"headline":9505,"description":9499},"Self-Hosted KI-Gedächtnissystem mit Cloudflare & MCP",{"lastmod":9498},{"title":9505,"description":9499,"ogTitle":8735,"ogDescription":9499,"twitterTitle":8735,"twitterDescription":9499},"de\u002Farticle\u002Fuse-cloudflare-as-ai-memory",[6271,6961,9510,8762,4107],"KI-Gedächtnis","FA15IjMO-lNXkWd4KVHQOLIkeNoT1OdwqzOiV4mYfds",{"id":9513,"title":2522,"author":425,"body":9514,"category":10029,"date":10030,"description":10031,"extension":1668,"image":10032,"imageAlt":10033,"isPublished":1067,"meta":10034,"minRead":1078,"navigation":1067,"path":25,"seo":10038,"stem":10039,"tags":10040,"updatedAt":1706,"__hash__":10043},"article\u002Fde\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac.md",{"type":427,"value":9515,"toc":10022},[9516,9520,9523,9530,9534,9540,9543,9546,9550,9553,9560,9576,9870,9982,9984,9987,9989,10019],[474,9517,9519],{"id":9518},"was-ist-cloudflare-warp","Was ist Cloudflare WARP?",[430,9521,9522],{},"Cloudflare WARP ist eine clientseitige Anwendung, die den Datenverkehr eines bestimmten Geräts über das globale Netzwerk von Cloudflare leitet, anstatt ihn direkt ins öffentliche Internet zu übertragen.",[430,9524,9525,9526,9529],{},"Sie erstellt einen verschlüsselten Tunnel basierend auf dem ",[441,9527,9528],{},"WireGuard","-Protokoll, der den Datenverkehr vom Gerät zum nächstgelegenen Cloudflare-Rechenzentrum sichert. Anschließend können im Cloudflare-Dashboard Richtlinien erstellt werden, um diesen eingehenden Datenverkehr zu filtern, zu protokollieren, zu überprüfen oder weiterzuleiten.",[474,9531,9533],{"id":9532},"warum-benötigen-wir-cloudflare-warp","Warum benötigen wir Cloudflare WARP?",[430,9535,9536,9537,552],{},"Um interne Ressourcen – wie private Webdienste oder SaaS-Anwendungen – sicher für Mitarbeiter, externe Auftragnehmer und andere Stakeholder freizugeben, dient der Cloudflare WARP-Client als clientseitiger Durchsetzungspunkt für ",[441,9538,9539],{},"Zero Trust Network Access (ZTNA)",[430,9541,9542],{},"Der Cloudflare WARP-Client wird auf dem Laptop oder Smartphone des Benutzers installiert. Er erfordert eine Authentifizierung und die Erfüllung bestimmter Sicherheitsprüfungen (z. B. Zugriff aus einem genehmigten IP-Bereich, Verwendung einer registrierten E-Mail-Domain oder Ausführung einer aktiven Firewall), bevor der Zugriff gewährt wird.",[430,9544,9545],{},"Durch das Tunneln des Datenverkehrs direkt zu Cloudflare werden die Identität, das Gerät und die Richtlinien des Benutzers überprüft, noch bevor Anfragen die internen Ressourcen erreichen. Dadurch sind interne Dienste niemals dem öffentlichen Internet ausgesetzt und jede Verbindung wird lückenlos protokolliert und auditiert.",[474,9547,9549],{"id":9548},"unterstützung-mehrerer-warp-profile-auf-einem-gerät","Unterstützung mehrerer WARP-Profile auf einem Gerät",[430,9551,9552],{},"Wenn Benutzer zwischen privaten und geschäftlichen Cloudflare-Konten wechseln müssen oder Systemadministratoren mehrere Tenants verwalten, wird die Unterstützung mehrerer WARP-Profile auf einem einzigen Gerät unverzichtbar.",[430,9554,9555,9556,9559],{},"Unter macOS lässt sich dies über eine ",[495,9557,9558],{},".mobileconfig","-MDM-Profildatei lösen, um die verschiedenen WARP-Umgebungen zu definieren und zu registrieren.",[485,9561,9562,9573],{},[488,9563,9564,9572],{},[444,9565,9568,9569,9571],{"href":9566,"rel":9567},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fstatic\u002Fmdm\u002Fmultiple-orgs\u002FCloudflareWARP.mobileconfig",[448],"Download a sample ",[495,9570,9558],{}," file"," direkt von Cloudflare herunter.",[488,9574,9575],{},"Unten finden Sie ein Beispiel für diese Konfiguration:",[926,9577,9581],{"className":9578,"code":9579,"language":9580,"meta":425,"style":425},"language-xml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n\u003C!DOCTYPE plist PUBLIC \"-\u002F\u002FApple\u002F\u002FDTD PLIST 1.0\u002F\u002FEN\" \"http:\u002F\u002Fwww.apple.com\u002FDTDs\u002FPropertyList-1.0.dtd\">\n\u003Cplist version=\"1.0\">\n\u003Cdict>\n  \u003Ckey>PayloadContent\u003C\u002Fkey>\n  \u003Carray>\n    \u003Cdict>\n      \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n      \u003Cstring>Warp Configuration\u003C\u002Fstring>\n      \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n      \u003Cstring>com.cloudflare.warp.CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n      \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n      \u003Cstring>Cloudflare Ltd.\u003C\u002Fstring>\n      \u003Ckey>PayloadType\u003C\u002Fkey>\n      \u003Cstring>com.cloudflare.warp\u003C\u002Fstring>\n      \u003Ckey>PayloadUUID\u003C\u002Fkey>\n      \u003Cstring>CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n      \u003Ckey>PayloadVersion\u003C\u002Fkey>\n      \u003Cinteger>1\u003C\u002Finteger>\n      \u003Ckey>configs\u003C\u002Fkey>\n      \u003Carray>\n        \u003Cdict>\n          \u003Ckey>organization\u003C\u002Fkey>\n          \u003Cstring>your-team-name-1\u003C\u002Fstring>\n          \u003Ckey>display_name\u003C\u002Fkey>\n          \u003Cstring>Team 1\u003C\u002Fstring>\n        \u003C\u002Fdict>\n        \u003Cdict>\n          \u003Ckey>organization\u003C\u002Fkey>\n          \u003Cstring>your-team-name-2\u003C\u002Fstring>\n          \u003Ckey>display_name\u003C\u002Fkey>\n          \u003Cstring>Team 2\u003C\u002Fstring>\n        \u003C\u002Fdict>\n      \u003C\u002Farray>\n    \u003C\u002Fdict>\n  \u003C\u002Farray>\n  \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n  \u003Cstring>Cloudflare WARP\u003C\u002Fstring>\n  \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n  \u003Cstring>cloudflare_warp\u003C\u002Fstring>\n  \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n  \u003Cstring>Cloudflare, Ltd.\u003C\u002Fstring>\n  \u003Ckey>PayloadRemovalDisallowed\u003C\u002Fkey>\n  \u003Cfalse\u002F>\n  \u003Ckey>PayloadScope\u003C\u002Fkey>\n  \u003Cstring>System\u003C\u002Fstring>\n  \u003Ckey>PayloadType\u003C\u002Fkey>\n  \u003Cstring>Configuration\u003C\u002Fstring>\n  \u003Ckey>PayloadUUID\u003C\u002Fkey>\n  \u003Cstring>2B7763B8-64F6-41EB-AA5E-7761651B8131\u003C\u002Fstring>\n  \u003Ckey>PayloadVersion\u003C\u002Fkey>\n  \u003Cinteger>1\u003C\u002Finteger>\n\u003C\u002Fdict>\n\u003C\u002Fplist>\n","xml",[495,9582,9583,9588,9593,9598,9603,9608,9613,9618,9623,9628,9633,9638,9643,9648,9653,9658,9663,9668,9673,9678,9683,9688,9693,9698,9703,9708,9713,9718,9722,9726,9731,9735,9740,9744,9750,9756,9762,9768,9774,9780,9786,9792,9798,9804,9810,9816,9822,9828,9834,9840,9846,9852,9858,9864],{"__ignoreMap":425},[934,9584,9585],{"class":936,"line":937},[934,9586,9587],{},"\u003C?xml version=\"1.0\" encoding=\"UTF-8\"?>\n",[934,9589,9590],{"class":936,"line":1064},[934,9591,9592],{},"\u003C!DOCTYPE plist PUBLIC \"-\u002F\u002FApple\u002F\u002FDTD PLIST 1.0\u002F\u002FEN\" \"http:\u002F\u002Fwww.apple.com\u002FDTDs\u002FPropertyList-1.0.dtd\">\n",[934,9594,9595],{"class":936,"line":1071},[934,9596,9597],{},"\u003Cplist version=\"1.0\">\n",[934,9599,9600],{"class":936,"line":1078},[934,9601,9602],{},"\u003Cdict>\n",[934,9604,9605],{"class":936,"line":1927},[934,9606,9607],{},"  \u003Ckey>PayloadContent\u003C\u002Fkey>\n",[934,9609,9610],{"class":936,"line":1932},[934,9611,9612],{},"  \u003Carray>\n",[934,9614,9615],{"class":936,"line":1938},[934,9616,9617],{},"    \u003Cdict>\n",[934,9619,9620],{"class":936,"line":2275},[934,9621,9622],{},"      \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n",[934,9624,9625],{"class":936,"line":2286},[934,9626,9627],{},"      \u003Cstring>Warp Configuration\u003C\u002Fstring>\n",[934,9629,9630],{"class":936,"line":1699},[934,9631,9632],{},"      \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n",[934,9634,9635],{"class":936,"line":2387},[934,9636,9637],{},"      \u003Cstring>com.cloudflare.warp.CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n",[934,9639,9640],{"class":936,"line":2393},[934,9641,9642],{},"      \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n",[934,9644,9645],{"class":936,"line":2398},[934,9646,9647],{},"      \u003Cstring>Cloudflare Ltd.\u003C\u002Fstring>\n",[934,9649,9650],{"class":936,"line":2404},[934,9651,9652],{},"      \u003Ckey>PayloadType\u003C\u002Fkey>\n",[934,9654,9655],{"class":936,"line":3361},[934,9656,9657],{},"      \u003Cstring>com.cloudflare.warp\u003C\u002Fstring>\n",[934,9659,9660],{"class":936,"line":3372},[934,9661,9662],{},"      \u003Ckey>PayloadUUID\u003C\u002Fkey>\n",[934,9664,9665],{"class":936,"line":3377},[934,9666,9667],{},"      \u003Cstring>CB8B22D4-50E1-48E8-8874-A7594627013A\u003C\u002Fstring>\n",[934,9669,9670],{"class":936,"line":3385},[934,9671,9672],{},"      \u003Ckey>PayloadVersion\u003C\u002Fkey>\n",[934,9674,9675],{"class":936,"line":3917},[934,9676,9677],{},"      \u003Cinteger>1\u003C\u002Finteger>\n",[934,9679,9680],{"class":936,"line":3923},[934,9681,9682],{},"      \u003Ckey>configs\u003C\u002Fkey>\n",[934,9684,9685],{"class":936,"line":3932},[934,9686,9687],{},"      \u003Carray>\n",[934,9689,9690],{"class":936,"line":4584},[934,9691,9692],{},"        \u003Cdict>\n",[934,9694,9695],{"class":936,"line":5039},[934,9696,9697],{},"          \u003Ckey>organization\u003C\u002Fkey>\n",[934,9699,9700],{"class":936,"line":5048},[934,9701,9702],{},"          \u003Cstring>your-team-name-1\u003C\u002Fstring>\n",[934,9704,9705],{"class":936,"line":5056},[934,9706,9707],{},"          \u003Ckey>display_name\u003C\u002Fkey>\n",[934,9709,9710],{"class":936,"line":5064},[934,9711,9712],{},"          \u003Cstring>Team 1\u003C\u002Fstring>\n",[934,9714,9715],{"class":936,"line":5069},[934,9716,9717],{},"        \u003C\u002Fdict>\n",[934,9719,9720],{"class":936,"line":5076},[934,9721,9692],{},[934,9723,9724],{"class":936,"line":5084},[934,9725,9697],{},[934,9727,9728],{"class":936,"line":5092},[934,9729,9730],{},"          \u003Cstring>your-team-name-2\u003C\u002Fstring>\n",[934,9732,9733],{"class":936,"line":5103},[934,9734,9707],{},[934,9736,9737],{"class":936,"line":5111},[934,9738,9739],{},"          \u003Cstring>Team 2\u003C\u002Fstring>\n",[934,9741,9742],{"class":936,"line":5118},[934,9743,9717],{},[934,9745,9747],{"class":936,"line":9746},34,[934,9748,9749],{},"      \u003C\u002Farray>\n",[934,9751,9753],{"class":936,"line":9752},35,[934,9754,9755],{},"    \u003C\u002Fdict>\n",[934,9757,9759],{"class":936,"line":9758},36,[934,9760,9761],{},"  \u003C\u002Farray>\n",[934,9763,9765],{"class":936,"line":9764},37,[934,9766,9767],{},"  \u003Ckey>PayloadDisplayName\u003C\u002Fkey>\n",[934,9769,9771],{"class":936,"line":9770},38,[934,9772,9773],{},"  \u003Cstring>Cloudflare WARP\u003C\u002Fstring>\n",[934,9775,9777],{"class":936,"line":9776},39,[934,9778,9779],{},"  \u003Ckey>PayloadIdentifier\u003C\u002Fkey>\n",[934,9781,9783],{"class":936,"line":9782},40,[934,9784,9785],{},"  \u003Cstring>cloudflare_warp\u003C\u002Fstring>\n",[934,9787,9789],{"class":936,"line":9788},41,[934,9790,9791],{},"  \u003Ckey>PayloadOrganization\u003C\u002Fkey>\n",[934,9793,9795],{"class":936,"line":9794},42,[934,9796,9797],{},"  \u003Cstring>Cloudflare, Ltd.\u003C\u002Fstring>\n",[934,9799,9801],{"class":936,"line":9800},43,[934,9802,9803],{},"  \u003Ckey>PayloadRemovalDisallowed\u003C\u002Fkey>\n",[934,9805,9807],{"class":936,"line":9806},44,[934,9808,9809],{},"  \u003Cfalse\u002F>\n",[934,9811,9813],{"class":936,"line":9812},45,[934,9814,9815],{},"  \u003Ckey>PayloadScope\u003C\u002Fkey>\n",[934,9817,9819],{"class":936,"line":9818},46,[934,9820,9821],{},"  \u003Cstring>System\u003C\u002Fstring>\n",[934,9823,9825],{"class":936,"line":9824},47,[934,9826,9827],{},"  \u003Ckey>PayloadType\u003C\u002Fkey>\n",[934,9829,9831],{"class":936,"line":9830},48,[934,9832,9833],{},"  \u003Cstring>Configuration\u003C\u002Fstring>\n",[934,9835,9837],{"class":936,"line":9836},49,[934,9838,9839],{},"  \u003Ckey>PayloadUUID\u003C\u002Fkey>\n",[934,9841,9843],{"class":936,"line":9842},50,[934,9844,9845],{},"  \u003Cstring>2B7763B8-64F6-41EB-AA5E-7761651B8131\u003C\u002Fstring>\n",[934,9847,9849],{"class":936,"line":9848},51,[934,9850,9851],{},"  \u003Ckey>PayloadVersion\u003C\u002Fkey>\n",[934,9853,9855],{"class":936,"line":9854},52,[934,9856,9857],{},"  \u003Cinteger>1\u003C\u002Finteger>\n",[934,9859,9861],{"class":936,"line":9860},53,[934,9862,9863],{},"\u003C\u002Fdict>\n",[934,9865,9867],{"class":936,"line":9866},54,[934,9868,9869],{},"\u003C\u002Fplist>\n",[485,9871,9872,9882,9895,9905,9910,9926,9938,9957,9973],{},[488,9873,9874,9875,576,9878,9881],{},"Ersetzen Sie ",[495,9876,9877],{},"your-team-name-1",[495,9879,9880],{},"your-team-name-2"," durch Ihre jeweiligen Cloudflare Zero Trust-Teamnamen.",[488,9883,3406,9884,9887,9888,9891,9892,9894],{},[495,9885,9886],{},"uuidgen"," im Terminal aus, um eindeutige UUIDs zu generieren, und ersetzen Sie damit die Platzhalter-Werte für ",[495,9889,9890],{},"PayloadUUID"," in der ",[495,9893,9558],{},"-Datei.",[488,9896,9897,9898,9901,9902,9904],{},"Stellen Sie sicher, dass der String ",[495,9899,9900],{},"PayloadIdentifier"," ebenfalls die aktualisierte ",[495,9903,9890],{}," enthält, um das Profil eindeutig zu kennzeichnen.",[488,9906,9907,9908,9894],{},"Speichern Sie Ihre bearbeitete ",[495,9909,9558],{},[488,9911,9912,9913,9916,9917,9919,9920,9922],{},"Öffnen Sie die ",[441,9914,9915],{},"Systemeinstellungen"," auf Ihrem Mac, suchen Sie nach ",[441,9918,4269],{}," und wählen Sie diese Option aus.",[1883,9921],{},[433,9923],{"alt":9924,"src":9925},"macOS-Systemeinstellungen Profiles-Bereich","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-system-settings-profiles.webp",[488,9927,4273,9928,9931,9932,9934],{},[441,9929,9930],{},"Installieren, Anzeigen oder Entfernen...",", um das neue Konfigurationsprofil hinzuzufügen.",[1883,9933],{},[433,9935],{"alt":9936,"src":9937},"Schaltfläche zum Installieren, Anzeigen oder Entfernen von macOS-Profilen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-profiles-view-remove.webp",[488,9939,9940,9941,9943,9944,9946,9947,9949,9953],{},"Klicken Sie auf das ",[441,9942,716],{}," (Plus)-Symbol in der linken unteren Ecke und wählen Sie Ihre gespeicherte ",[495,9945,9558],{},"-Datei aus.",[1883,9948],{},[433,9950],{"alt":9951,"src":9952},"macOS Profile Plus-Symbol zum Hinzufügen eines neuen Profils","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-profiles-add-profile.webp",[433,9954],{"alt":9955,"src":9956},"Auswahl der .mobileconfig-Datei auf macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-select-mobileconfig-file.webp",[488,9958,9959,9960,9962,9963,9966,9967,9969],{},"Wählen Sie ",[441,9961,1722],{}," und klicken Sie auf ",[441,9964,9965],{},"Installieren",", um die Konfiguration anzuwenden.",[1883,9968],{},[433,9970],{"alt":9971,"src":9972},"Bestätigung der Cloudflare WARP-Profilinstallation auf macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fmacos-install-cloudflare-warp-profile.webp",[488,9974,9975,9976,9978],{},"Starten Sie Ihren Cloudflare WARP-Client neu. In der Benutzeroberfläche sollte nun der Menüpunkt zum Wechseln der Profile erscheinen:",[1883,9977],{},[433,9979],{"alt":9980,"src":9981},"Cloudflare WARP-Client mit Multi-Profil-Umschalter auf macOS","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002Fcloudflare-warp-multi-profile-switcher.webp",[474,9983,2575],{"id":2574},[430,9985,9986],{},"Der Cloudflare WARP-Client dient als kritischer Sicherheitspunkt auf Endgeräten und macht den Zero Trust Network Access sowohl robust als auch praxistauglich. Die Abschottung interner Ressourcen vom öffentlichen Internet stellt sicher, dass jeder Verbindungsversuch sicher authentifiziert, bewertet und auditiert wird.",[474,9988,4040],{"id":1614},[485,9990,9991,9998,10005,10012],{},[488,9992,9993],{},[444,9994,9997],{"href":9995,"rel":9996},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fteam-and-resources\u002Fdevices\u002Fcloudflare-one-client\u002Fdeployment\u002Fmdm-deployment\u002F#prepare-file-for-mdm-deployment",[448],"Managed Deployment Preparation",[488,9999,10000],{},[444,10001,10004],{"href":10002,"rel":10003},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fteam-and-resources\u002Fdevices\u002Fcloudflare-one-client\u002Fdeployment\u002Fmdm-deployment\u002Fswitch-organizations\u002F",[448],"Switch Between Zero Trust Organizations",[488,10006,10007],{},[444,10008,10011],{"href":10009,"rel":10010},"https:\u002F\u002Fblog.cloudflare.com\u002Fintroducing-warp-connector-paving-the-path-to-any-to-any-connectivity-2\u002F",[448],"Introducing WARP Connector: Paving the Path to Any-to-Any Connectivity",[488,10013,10014],{},[444,10015,10018],{"href":10016,"rel":10017},"https:\u002F\u002Fdevelopers.cloudflare.com\u002Fcloudflare-one\u002Fteam-and-resources\u002Fdevices\u002Fcloudflare-one-client\u002F",[448],"Cloudflare One Client Documentation",[1643,10020,10021],{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":425,"searchDepth":1064,"depth":1071,"links":10023},[10024,10025,10026,10027,10028],{"id":9518,"depth":1064,"text":9519},{"id":9532,"depth":1064,"text":9533},{"id":9548,"depth":1064,"text":9549},{"id":2574,"depth":1064,"text":2575},{"id":1614,"depth":1064,"text":4040},[2608,9497],"2026-07-04","Konfigurieren und wechseln Sie mehrere Cloudflare WARP-Organisationen auf macOS mit einer .mobileconfig-Datei. Ein vollständiger MDM-Leitfaden für IT-Admins.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSwitch%20Between%20Multiple%20Cloudflare%20WARP%20Orgs%20on%20Mac\u002FDE-Switch-Between-Multiple-Cloudflare-WARP-Orgs-on-Mac.webp","Mehrere Cloudflare WARP-Profile auf macOS konfigurieren",{"schemaOrg":10035,"robots":1697,"sitemap":10037},[10036],{"@type":1676,"headline":2522,"description":10031},{"lastmod":10030},{"title":10033,"description":10031,"ogTitle":2522,"ogDescription":10031,"twitterTitle":2522,"twitterDescription":10031},"de\u002Farticle\u002Fswitch-between-multiple-cloudflare-warp-orgs-on-mac",[10041,1722,10042,2651],"macOS","MDM","wxM5RlX3tnfbT5kxU5Oby90OSjJTROrw5l1JGYoNVWs",{"id":10045,"title":8336,"author":425,"body":10046,"category":10429,"date":10430,"description":10431,"extension":1668,"image":10432,"imageAlt":10433,"isPublished":1067,"meta":10434,"minRead":1927,"navigation":1067,"path":5,"seo":10438,"stem":10439,"tags":10440,"updatedAt":1706,"__hash__":10444},"article\u002Fde\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them.md",{"type":427,"value":10047,"toc":10419},[10048,10052,10062,10073,10134,10140,10144,10147,10156,10162,10166,10220,10231,10237,10240,10299,10303,10310,10317,10320,10331,10335,10380,10383,10400,10402,10413,10416],[474,10049,10051],{"id":10050},"was-ist-ein-ki-agenten-skill","Was ist ein KI-Agenten-Skill?",[430,10053,10054,10055,10058,10059,10061],{},"Ein Agenten-Skill (agent skill) ist eine wiederverwendbare ",[441,10056,10057],{},"Sammlung von Anweisungen"," – ein standardisiertes Verfahren, das einem Agenten zeigt, wie er eine bestimmte Art von Aufgabe hervorragend erledigt. Ein Skill besteht aus einer einzelnen Markdown-Datei (",[495,10060,8332],{},") und kann alle weiteren für die Aufgabe erforderlichen Dateien wie Referenzdokumente, Vorlagen oder ausführbare Skripte bündeln.",[430,10063,10064,10065,10072],{},"Nehmen wir den Skill ",[444,10066,10069],{"href":10067,"rel":10068},"https:\u002F\u002Fgithub.com\u002Fmattpocock\u002Fskills\u002Fblob\u002F733d312884b3878a9a9cff693c5886943753a741\u002Fskills\u002Fproductivity\u002Fgrill-me\u002FSKILL.md",[448],[495,10070,10071],{},"grill-me"," als Beispiel:",[926,10074,10076],{"className":2207,"code":10075,"language":2209,"meta":425,"style":425},"---\nname: grill-me\ndescription: Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions \"grill me\".\n---\n\nInterview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.\n\nAsk the questions one at a time.\n\nIf a question can be answered by exploring the codebase, explore the codebase instead.\n",[495,10077,10078,10083,10093,10103,10107,10111,10116,10120,10125,10129],{"__ignoreMap":425},[934,10079,10080],{"class":936,"line":937},[934,10081,10082],{"class":1044},"---\n",[934,10084,10085,10088,10090],{"class":936,"line":1064},[934,10086,10087],{"class":1358},"name",[934,10089,891],{"class":948},[934,10091,10092],{"class":1048}," grill-me\n",[934,10094,10095,10098,10100],{"class":936,"line":1071},[934,10096,10097],{"class":1358},"description",[934,10099,891],{"class":948},[934,10101,10102],{"class":1048}," Interview the user relentlessly about a plan or design until reaching shared understanding, resolving each branch of the decision tree. Use when user wants to stress-test a plan, get grilled on their design, or mentions \"grill me\".\n",[934,10104,10105],{"class":936,"line":1078},[934,10106,10082],{"class":1044},[934,10108,10109],{"class":936,"line":1927},[934,10110,1068],{"emptyLinePlaceholder":1067},[934,10112,10113],{"class":936,"line":1932},[934,10114,10115],{"class":1048},"Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one-by-one. For each question, provide your recommended answer.\n",[934,10117,10118],{"class":936,"line":1938},[934,10119,1068],{"emptyLinePlaceholder":1067},[934,10121,10122],{"class":936,"line":2275},[934,10123,10124],{"class":1048},"Ask the questions one at a time.\n",[934,10126,10127],{"class":936,"line":2286},[934,10128,1068],{"emptyLinePlaceholder":1067},[934,10130,10131],{"class":936,"line":1699},[934,10132,10133],{"class":1048},"If a question can be answered by exploring the codebase, explore the codebase instead.\n",[430,10135,10136,10137,10139],{},"Eine ",[495,10138,8332],{},"-Datei enthält einen kleinen Metadatenblock und die eigentlichen Anweisungen. Die Metadaten bestehen aus dem Namen und der Beschreibung des Skills, die der KI-Agent beim Start lädt.",[474,10141,10143],{"id":10142},"wie-ki-agenten-skills-funktionieren-progressive-disclosure","Wie KI-Agenten-Skills funktionieren: Progressive Disclosure",[430,10145,10146],{},"Anfangs werden nur der Name und die Beschreibung in den Kontext geladen. Sobald die Anfrage des Benutzers mit der Beschreibung eines Skills übereinstimmt, werden die vollständigen Anweisungen in denselben Kontext geladen (Progressive Disclosure).",[430,10148,10149,10150,10155],{},"Sehen wir uns an, wie der Skill ",[444,10151,10153],{"href":10067,"rel":10152},[448],[495,10154,10071],{}," in der Praxis abläuft.",[430,10157,10158],{},[433,10159],{"alt":10160,"src":10161},"Sequenzdiagramm zur Veranschaulichung des Progressive-Disclosure-Mechanismus bei der Ausführung von KI-Agenten-Skills","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FAI%20Agent%20Skills%20What%20They%20Are%20%26%20How%20to%20Create%20Them\u002Fai-agent-skill-progressive-disclosure-sequence-diagram.webp",[881,10163,10165],{"id":10164},"schritt-für-schritt","Schritt für Schritt",[533,10167,10168,10174,10180,10186,10192,10204,10214],{},[488,10169,10170,10173],{},[441,10171,10172],{},"Anfrage (Request)"," – Der Benutzer bittet den Agenten um etwas („Hinterfrage meinen Workflow-Entwurf“).",[488,10175,10176,10179],{},[441,10177,10178],{},"Auswahlprompt (Selection prompt)"," – Die Anfrage des Benutzers wird zusammen mit den Beschreibungen aller verfügbaren Skills an das LLM gesendet.",[488,10181,10182,10185],{},[441,10183,10184],{},"Auswahl durch das LLM"," – Das LLM vergleicht die Anfrage mit den Beschreibungen und gibt den\u002Fdie passenden Skill(s) zurück.",[488,10187,10188,10191],{},[441,10189,10190],{},"Bestätigung"," – Der Agent schlägt dem Benutzer den entsprechenden Skill vor. Dieser bestätigt die Auswahl (oder lehnt sie ab\u002Fpasst sie an).",[488,10193,10194,10197,10198,10201,10202,552],{},[441,10195,10196],{},"Anweisungen geladen"," – Der Agent ruft die ",[901,10199,10200],{},"vollständigen"," Anweisungen für den bestätigten Skill ab: den Inhalt von ",[495,10203,8332],{},[488,10205,10206,10209,10210,10213],{},[441,10207,10208],{},"Ausführungsprompt (Execution prompt)"," – Die Anfrage des Benutzers ",[441,10211,10212],{},"zusammen mit den Anweisungen des ausgewählten Skills"," wird an das LLM gesendet.",[488,10215,10216,10219],{},[441,10217,10218],{},"Antwort"," – Das LLM generiert die Ausgabe, in diesem Fall die erste Frage für das Stresstest-Interview.",[430,10221,10222,10223,10230],{},"Schauen wir uns nun am Beispiel des ",[444,10224,10227],{"href":10225,"rel":10226},"https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill",[448],[495,10228,10229],{},"excalidraw-diagram-skill"," an, wie ein Skill mit einem Referenzdokument verwendet wird:",[430,10232,10233],{},[433,10234],{"alt":10235,"src":10236},"Sequenzdiagramm, das die Ausführung eines KI-Agenten-Skills mit externen Referenzdateien und Vorlagen zeigt","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FAI%20Agent%20Skills%20What%20They%20Are%20%26%20How%20to%20Create%20Them\u002Fai-agent-skill-with-reference-files-sequence-diagram.webp",[881,10238,10165],{"id":10239},"schritt-für-schritt-1",[533,10241,10242,10247,10253,10261,10266,10280,10290],{},[488,10243,10244,10246],{},[441,10245,10172],{}," – Der Benutzer bittet den Agenten um eine Aktion („Zeichne den Workflow des Deployment-Prozesses“).",[488,10248,10249,10252],{},[441,10250,10251],{},"Auswahlprompt"," – Die Anfrage des Benutzers wird zusammen mit den Beschreibungen aller verfügbaren Skills an das LLM übermittelt.",[488,10254,10255,10257,10258,552],{},[441,10256,10184],{}," – Das LLM vergleicht die Anfrage mit den Beschreibungen und wählt den passenden Skill aus. Hier passt „Zeichne den Workflow“ zur Beschreibung von ",[495,10259,10260],{},"excalidraw-diagram",[488,10262,10263,10265],{},[441,10264,10190],{}," – Der Agent zeigt dem Benutzer den vorgeschlagenen Skill an, und dieser bestätigt (oder ändert) die Wahl.",[488,10267,10268,10270,10271,10273,10274,10276,10277,10279],{},[441,10269,10196],{}," – Der Agent lädt die ",[901,10272,10200],{}," Anweisungen des Skills: den Inhalt der ",[495,10275,8332],{}," sowie alle referenzierten Dateien (bei ",[495,10278,10260],{}," sind das Farbpaletten, das JSON-Schema und Elementvorlagen).",[488,10281,10282,10285,10286,10289],{},[441,10283,10284],{},"Ausführungsprompt"," – Die Benutzeranfrage ",[441,10287,10288],{},"plus die geladenen Skill-Anweisungen"," wird an das LLM geschickt. Das Modell verfügt nun über die detaillierte Methodik.",[488,10291,10292,10294,10295,10298],{},[441,10293,10218],{}," – Das LLM erstellt die Ausgabe (eine ",[495,10296,10297],{},".excalidraw","-JSON-Datei), die der Agent an den Benutzer zurückgibt.",[474,10300,10302],{"id":10301},"ki-agenten-skills-vs-tools-und-mcp","KI-Agenten-Skills vs. Tools und MCP",[430,10304,10305,10306,10309],{},"Skills ersetzen keine Prompts, Tools oder MCP-Integrationen. Tools und MCP-Schnittstellen erweitern die Reichweite des Agenten auf externe Systeme – wie Datenbankabfragen, API-Aufrufe usw. Skills hingegen vertiefen das praktische Wissen (",[901,10307,10308],{},"Know-how",") des Agenten bei der Ausführung einer bestimmten Aufgabe.",[430,10311,10312,10313,10316],{},"Ein MCP wie das ",[444,10314,10315],{"href":395},"NetSuite MCP auf ChatGPT und Claude einrichten"," ermöglicht es dem Agenten, Fragen durch Zugriff auf Live-Finanz- und Betriebsdaten in NetSuite zu beantworten. Ein NetSuite-Skill für operative Berichte leitet den Agenten wiederum an, wie er diesen Bericht verfassen und die Antwort dem Benutzer optimal präsentieren soll.",[430,10318,10319],{},"Einige typische Einsatzszenarien für Skills sind:",[485,10321,10322,10325,10328],{},[488,10323,10324],{},"Mehrstufige Workflows (Multi-step Workflows)",[488,10326,10327],{},"Dokumentenverarbeitung (z. B. Datenextraktion aus PDFs)",[488,10329,10330],{},"Richtlinien zur Code-Generierung",[474,10332,10334],{"id":10333},"wie-man-ki-agenten-skills-erstellt","Wie man KI-Agenten-Skills erstellt",[533,10336,10337,10347,10361,10370],{},[488,10338,10339,10342,10343,10346],{},[441,10340,10341],{},"Erstellen Sie einen Ordner",", der nach dem Skill benannt ist (z. B. ",[495,10344,10345],{},"netsuite-operation-report\u002F",").",[488,10348,10349,10354,10355,10357,10358,10360],{},[441,10350,10351,10352],{},"Schreiben Sie eine ",[495,10353,8332],{}," mit einem eindeutigen ",[495,10356,10087],{},", einer präzisen ",[495,10359,10097],{}," und einer prägnanten Anleitung (unter 200 Wörtern).",[488,10362,10363,10366,10367,10369],{},[441,10364,10365],{},"Fügen Sie Ressourcen hinzu",", die für die Aufgabe benötigt werden – Referenzdokumente, Vorlagen oder Skripte. Halten Sie die ",[495,10368,8332],{}," kurz und verweisen Sie auf die Details in separaten Dateien.",[488,10371,10372,10375,10376,10379],{},[441,10373,10374],{},"Installieren Sie den Skill"," dort, wo Agenten ihn finden können. Lesen Sie ",[444,10377,10378],{"href":359},"Zentralisierung von KI-Agenten-Skills",", um zu erfahren, wie Sie Skills für mehrere Agenten zentral verwalten.",[430,10381,10382],{},"Ein paar Tipps für effektive Skills:",[485,10384,10385,10388,10394,10397],{},[488,10386,10387],{},"Formulieren Sie die Beschreibung als System-Trigger, nicht primär für menschliche Leser.",[488,10389,10390,10391,10393],{},"Halten Sie die ",[495,10392,8332],{}," schlank (unter 200 Wörtern). Beschreiben Sie den Standardfall im Haupttext; lagern Sie Edge-Cases in Referenzdokumente aus.",[488,10395,10396],{},"Nutzen Sie Skripte für alle deterministischen Aufgaben. Überlassen Sie dem LLM keine Rechenaufgaben.",[488,10398,10399],{},"Nutzen Sie Versionsverwaltung. Checken Sie den Skill in Git ein.",[474,10401,2575],{"id":2574},[430,10403,10404,10405,10408,10409,10412],{},"Während Tools und MCP festlegen, ",[901,10406,10407],{},"womit sich der Agent verbinden soll",", kapseln Agenten-Skills, ",[901,10410,10411],{},"wie die eigentliche Arbeit erledigt wird",". Sie sind eine essenzielle Ergänzung, kein Ersatz.",[430,10414,10415],{},"Durch das Prinzip des Progressive Disclosure halten Skills das Kontextfenster Ihres Agenten sauber und effizient – detaillierte Anweisungen, Referenzdokumente und ausführbare Skripte werden nur dann geladen, wenn die Anfrage des Benutzers sie tatsächlich triggert.",[1643,10417,10418],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":425,"searchDepth":1064,"depth":1071,"links":10420},[10421,10422,10426,10427,10428],{"id":10050,"depth":1064,"text":10051},{"id":10142,"depth":1064,"text":10143,"children":10423},[10424,10425],{"id":10164,"depth":1071,"text":10165},{"id":10239,"depth":1071,"text":10165},{"id":10301,"depth":1064,"text":10302},{"id":10333,"depth":1064,"text":10334},{"id":2574,"depth":1064,"text":2575},[1663],"2026-06-26","Erfahren Sie, was KI-Agenten-Skills sind, wie Progressive Disclosure funktioniert, und lernen Sie Schritt für Schritt, wie man eigene Skills effizient erstellt.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FAI%20Agent%20Skills%20What%20They%20Are%20%26%20How%20to%20Create%20Them\u002FDE-AI-Agent-Skills-What-They-Are-%26-How-to-Create-Them.webp","Leitfaden für KI-Agenten-Skills: Workflows erstellen",{"schemaOrg":10435,"robots":1697,"sitemap":10437},[10436],{"@type":1676,"headline":8336,"description":10431},{"lastmod":10430},{"title":10433,"description":10431,"ogTitle":8336,"ogDescription":10431,"twitterTitle":8336,"twitterDescription":10431},"de\u002Farticle\u002Fai-agent-skills-what-they-are-how-to-create-them",[1705,10441,10442,10443],"Agenten-Skills","Wiederverwendbare Workflows","KI-Tutorial","aYz_d5erwncS3R6Ctv40_hkfPn7RzXJJObWrsg5Etrg",{"id":10446,"title":1732,"author":425,"body":10447,"category":11045,"date":11046,"description":11047,"extension":1668,"image":11048,"imageAlt":11049,"isPublished":1067,"meta":11050,"minRead":1932,"navigation":1067,"path":15,"seo":11064,"stem":11066,"tags":11067,"updatedAt":1706,"__hash__":11071},"article\u002Fde\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server.md",{"type":427,"value":10448,"toc":11034},[10449,10453,10456,10459,10463,10467,10470,10483,10489,10492,10517,10524,10551,10558,10563,10577,10589,10595,10600,10616,10620,10623,10642,10648,10651,10662,10672,10683,10714,10718,10728,10737,10747,10760,10767,10777,10783,10812,10828,10832,10839,10851,10856,10890,10894,10897,10911,10917,10980,10982,11026,11028,11031],[474,10450,10452],{"id":10451},"warum-den-hermes-agent-auf-einem-remote-vps-hosten","Warum den Hermes Agent auf einem Remote-VPS hosten?",[430,10454,10455],{},"Da der Hermes Agent in der Lage ist, Hintergrundaufgaben auszuführen, Tasks zu planen und auf Webhook-Aufrufe zu reagieren, benötigen wir eine Maschine, die rund um die Uhr (24\u002F7) betriebsbereit ist. Lokale Rechner können Stromausfälle erleiden, die Internetverbindung verlieren oder an ihre Hardwaregrenzen stoßen. Ein Remote-Server garantiert eine Betriebszeit (Uptime) von 99 % und ermöglicht eine einfache Skalierung der Rechenressourcen bei Bedarf.",[430,10457,10458],{},"Es gibt mehrere erschwingliche Anbieter von virtuellen privaten Servern (VPS) auf dem Markt, wie z. B. Hetzner, Hostinger und Contabo. Wir nutzen Contabo bereits seit geraumer Zeit und sind bisher sehr zufrieden.",[474,10460,10462],{"id":10461},"so-richten-sie-den-hermes-agent-auf-einem-linux-vps-ein","So richten Sie den Hermes Agent auf einem Linux-VPS ein",[881,10464,10466],{"id":10465},"schritt-1-verbindung-mit-ihrem-vps-herstellen","Schritt 1: Verbindung mit Ihrem VPS herstellen",[430,10468,10469],{},"Öffnen Sie das Terminal und verbinden Sie sich per SSH mit Ihrem Remote-Server:",[926,10471,10473],{"className":1035,"code":10472,"language":1037,"meta":425,"style":425},"ssh root@your_server_ip\n",[495,10474,10475],{"__ignoreMap":425},[934,10476,10477,10480],{"class":936,"line":937},[934,10478,10479],{"class":1044},"ssh",[934,10481,10482],{"class":1048}," root@your_server_ip\n",[430,10484,10485],{},[433,10486],{"alt":10487,"src":10488},"SSH-Verbindung zum Linux-VPS-Server im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fvps-terminal-ssh-connection.webp",[430,10490,10491],{},"Stellen Sie sicher, dass Ihre Server-Pakete auf dem neuesten Stand sind:",[926,10493,10495],{"className":1035,"code":10494,"language":1037,"meta":425,"style":425},"sudo apt update && sudo apt upgrade -y\n",[495,10496,10497],{"__ignoreMap":425},[934,10498,10499,10501,10503,10506,10508,10510,10512,10515],{"class":936,"line":937},[934,10500,1895],{"class":1044},[934,10502,4486],{"class":1048},[934,10504,10505],{"class":1048}," update",[934,10507,5482],{"class":948},[934,10509,4407],{"class":1044},[934,10511,4486],{"class":1048},[934,10513,10514],{"class":1048}," upgrade",[934,10516,4519],{"class":1048},[430,10518,10519,10520,10523],{},"Fügen Sie einen neuen Benutzer hinzu, z. B. ",[495,10521,10522],{},"hermes"," oder Ihren bevorzugten Benutzernamen:",[926,10525,10527],{"className":1035,"code":10526,"language":1037,"meta":425,"style":425},"sudo adduser hermes \nsudo passwd hermes\n",[495,10528,10529,10541],{"__ignoreMap":425},[934,10530,10531,10533,10536,10539],{"class":936,"line":937},[934,10532,1895],{"class":1044},[934,10534,10535],{"class":1048}," adduser",[934,10537,10538],{"class":1048}," hermes",[934,10540,2028],{"class":944},[934,10542,10543,10545,10548],{"class":936,"line":1064},[934,10544,1895],{"class":1044},[934,10546,10547],{"class":1048}," passwd",[934,10549,10550],{"class":1048}," hermes\n",[430,10552,10553,10554,10557],{},"Deaktivieren Sie den Passwort-Login für den ",[495,10555,10556],{},"root","-Benutzer:",[533,10559,10560],{},[488,10561,10562],{},"Öffnen Sie die SSH-Konfigurationsdatei:",[926,10564,10566],{"className":1035,"code":10565,"language":1037,"meta":425,"style":425},"sudo nano \u002Fetc\u002Fssh\u002Fsshd_config\n",[495,10567,10568],{"__ignoreMap":425},[934,10569,10570,10572,10574],{"class":936,"line":937},[934,10571,1895],{"class":1044},[934,10573,2316],{"class":1048},[934,10575,10576],{"class":1048}," \u002Fetc\u002Fssh\u002Fsshd_config\n",[533,10578,10579],{"start":1064},[488,10580,10581,10582,10585,10586,891],{},"Suchen Sie nach der Zeile ",[495,10583,10584],{},"PermitRootLogin"," und ändern Sie den Wert auf ",[495,10587,10588],{},"no",[926,10590,10593],{"className":10591,"code":10592,"language":4654,"meta":425},[4652],"PermitRootLogin no\n",[495,10594,10592],{"__ignoreMap":425},[533,10596,10597],{"start":1071},[488,10598,10599],{},"Speichern Sie die Datei und starten Sie den SSH-Dienst neu:",[926,10601,10603],{"className":1035,"code":10602,"language":1037,"meta":425,"style":425},"sudo systemctl restart ssh\n",[495,10604,10605],{"__ignoreMap":425},[934,10606,10607,10609,10611,10613],{"class":936,"line":937},[934,10608,1895],{"class":1044},[934,10610,1898],{"class":1048},[934,10612,1901],{"class":1048},[934,10614,10615],{"class":1048}," ssh\n",[881,10617,10619],{"id":10618},"schritt-2-hermes-agent-installieren","Schritt 2: Hermes Agent installieren",[430,10621,10622],{},"Führen Sie den folgenden Befehl aus:",[926,10624,10626],{"className":1035,"code":10625,"language":1037,"meta":425,"style":425},"curl -fsSL https:\u002F\u002Fhermes-agent.nousresearch.com\u002Finstall.sh | bash\n",[495,10627,10628],{"__ignoreMap":425},[934,10629,10630,10632,10634,10637,10639],{"class":936,"line":937},[934,10631,2995],{"class":1044},[934,10633,4398],{"class":1048},[934,10635,10636],{"class":1048}," https:\u002F\u002Fhermes-agent.nousresearch.com\u002Finstall.sh",[934,10638,4404],{"class":948},[934,10640,10641],{"class":1044}," bash\n",[430,10643,10644],{},[433,10645],{"alt":10646,"src":10647},"Ausführen des Hermes-Agent-Installationsskripts im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-agent-installation-terminal.webp",[430,10649,10650],{},"Überprüfen Sie nach der Installation die Version mit dem Befehl:",[926,10652,10654],{"className":1035,"code":10653,"language":1037,"meta":425,"style":425},"hermes --version\n",[495,10655,10656],{"__ignoreMap":425},[934,10657,10658,10660],{"class":936,"line":937},[934,10659,10522],{"class":1044},[934,10661,3627],{"class":1048},[430,10663,1834,10664,10667,10668],{},[495,10665,10666],{},"hermes setup"," aus, um den Hermes Agent zu konfigurieren:\n",[433,10669],{"alt":10670,"src":10671},"Ausführen des hermes setup Befehls im Terminal zum Starten der Konfiguration","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-agent-setup-wizard.webp",[430,10673,10674,10675,10678,10679],{},"Wählen Sie einen LLM-Anbieter aus. Beginnen Sie mit ",[495,10676,10677],{},"DeepSeek"," und fügen Sie später weitere hinzu.\n",[433,10680],{"alt":10681,"src":10682},"Auswahl von DeepSeek als LLM-Anbieter im Hermes-Setup","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-llm-provider-selection.webp",[430,10684,10685,10686,10688,10689,10693,10697,10698,10701,10702,10697,10706,10709,10710],{},"Geben Sie Ihren ",[495,10687,10677],{},"-API-Schlüssel ein:\n",[433,10690],{"alt":10691,"src":10692},"Eingabe des DeepSeek-API-Schlüssels im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-enter-api-key.webp",[433,10694],{"alt":10695,"src":10696},"Erfolgreiche Bestätigung des LLM-Anbieter-API-Schlüssels","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-api-key-success.webp","\nWählen Sie ",[495,10699,10700],{},"local machine"," aus, um den Hermes Agent auszuführen:\n",[433,10703],{"alt":10704,"src":10705},"Auswahl von local machine für die Ausführungsumgebung des Hermes Agents","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-select-local-machine.webp",[495,10707,10708],{},"Telegram"," in den Kanälen aus. Weitere Kanäle können später eingerichtet werden.\n",[433,10711],{"alt":10712,"src":10713},"Auswahl von Telegram als Kommunikationskanal im Hermes-Setup","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-select-telegram-channel.webp",[881,10715,10717],{"id":10716},"schritt-3-integration-mit-telegram","Schritt 3: Integration mit Telegram",[430,10719,9959,10720,10723,10724],{},[495,10721,10722],{},"[2]",", um den Telegram-Bot zu nutzen.\n",[433,10725],{"alt":10726,"src":10727},"Auswahl der Option zur Konfiguration der Telegram-Bot-Integration","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-bot-integration-option.webp",[430,10729,2170,10730,10732,10733],{},[495,10731,10708],{}," und suchen Sie nach 'BotFather'.\n",[433,10734],{"alt":10735,"src":10736},"Suche nach BotFather in der Telegram-Anwendung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-search-botfather.webp",[430,10738,4273,10739,10742,10743],{},[495,10740,10741],{},"Open",", um 'BotFather' zu öffnen.\n",[433,10744],{"alt":10745,"src":10746},"Öffnen des Chat-Fensters mit BotFather auf Telegram","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-open-botfather-chat.webp",[430,10748,4273,10749,10752,10753,1800,10756],{},[495,10750,10751],{},"Create a New Bot"," (oder senden Sie ",[495,10754,10755],{},"\u002Fnewbot",[433,10757],{"alt":10758,"src":10759},"Senden des Befehls newbot an BotFather zum Erstellen eines neuen Telegram-Bots","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fbotfather-create-new-bot.webp",[430,10761,10762,10763],{},"Geben Sie die Namen ein und erstellen Sie den Bot.\n",[433,10764],{"alt":10765,"src":10766},"Konfigurieren des Namens und Benutzernamens für den neuen Telegram-Bot","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fbotfather-bot-details-configured.webp",[430,10768,4273,10769,10772,10773],{},[495,10770,10771],{},"Copy",", um das Token zu kopieren, und fügen Sie es im Terminal ein.\n",[433,10774],{"alt":10775,"src":10776},"Kopieren des HTTP-API-Tokens des neu erstellten Telegram-Bots","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fbotfather-copy-http-api-token.webp",[430,10778,10779,10780,10782],{},"Finden Sie die ID Ihres ",[495,10781,10708],{},"-Benutzerkontos und fügen Sie sie zur Liste der erlaubten Benutzer hinzu ('Allowed user list'):",[485,10784,10785,10795,10809],{},[488,10786,10787,10788,10790,10791],{},"Suchen Sie nach '@raw_data_bot' auf ",[495,10789,10708],{},".\n",[433,10792],{"alt":10793,"src":10794},"Suche nach raw data bot auf Telegram zum Abrufen der Benutzer-ID","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-search-raw-data-bot.webp",[488,10796,4273,10797,10800,10801,10804,10805],{},[495,10798,10799],{},"RawDataBot"," und dann auf den Start-Button. Die Benutzer-ID wird hinter ",[495,10802,10803],{},"P.S. Your ID:"," angezeigt.\n",[433,10806],{"alt":10807,"src":10808},"Starten von RawDataBot zur Anzeige der Benutzerkonto-ID","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-raw-data-bot-user-id.webp",[488,10810,10811],{},"Kopieren Sie die Benutzer-ID und fügen Sie sie in das Terminal ein.",[430,10813,10814,10815,10819,10820,10824],{},"Da der Dienst in der Cloud läuft, soll er automatisch gestartet werden.\n",[433,10816],{"alt":10817,"src":10818},"Konfigurieren der Autostart-Option für den Hermes-systemd-Dienst","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-autostart-service-option.webp","\nBelassen Sie alle Einstellungen auf den Standardwerten:\n",[433,10821],{"alt":10822,"src":10823},"Belassen der Setup-Konfigurationen auf den Standardwerten im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-leave-defaults-1.webp",[433,10825],{"alt":10826,"src":10827},"Abschließen der Standard-Setup-Optionen in der Hermes-Konfiguration","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Fhermes-setup-leave-defaults-2.webp",[474,10829,10831],{"id":10830},"testen-des-hermes-agents-mit-dem-telegram-bot","Testen des Hermes Agents mit dem Telegram-Bot",[430,10833,10834,10835,10838],{},"Führen Sie den folgenden Befehl aus, um das ",[495,10836,10837],{},"hermes gateway"," zu starten:",[926,10840,10842],{"className":1035,"code":10841,"language":1037,"meta":425,"style":425},"hermes gateway\n",[495,10843,10844],{"__ignoreMap":425},[934,10845,10846,10848],{"class":936,"line":937},[934,10847,10522],{"class":1044},[934,10849,10850],{"class":1048}," gateway\n",[430,10852,2170,10853,10855],{},[495,10854,10708],{}," und fügen Sie den erstellten Bot '@tech_cloud_hermes_bot' zu Ihren Chats hinzu.",[485,10857,10858,10871,10881],{},[488,10859,10860,10861,10863,10864,10866,10867],{},"Geben Sie '\u002Fnew' in ",[495,10862,10708],{}," ein, um eine neue ",[495,10865,1718],{},"-Sitzung zu starten.\n",[433,10868],{"alt":10869,"src":10870},"Eingabe des Befehls new in Telegram zum Starten einer neuen Hermes-Agent-Sitzung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-chat-hermes-new-session.webp",[488,10872,10873,10874,10876,10877],{},"Die Eingabe von ",[495,10875,1503],{}," listet alle verfügbaren Befehle auf.\n",[433,10878],{"alt":10879,"src":10880},"Eingabe von commands in Telegram zur Anzeige der verfügbaren Hermes-Befehle","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-chat-hermes-commands-list.webp",[488,10882,10873,10883,10885,10886],{},[495,10884,1533],{}," zeigt eine Liste aller verfügbaren LLMs.\n",[433,10887],{"alt":10888,"src":10889},"Eingabe von model in Telegram zur Anzeige der aktiven LLM-Modelle","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002Ftelegram-chat-hermes-model-selection.webp",[474,10891,10893],{"id":10892},"hermes-gateway-als-hintergrunddienst-ausführen","Hermes Gateway als Hintergrunddienst ausführen",[430,10895,10896],{},"Erstellen Sie die Service-Datei:",[926,10898,10900],{"className":2305,"code":10899,"language":2307,"meta":425,"style":425},"sudo nano \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-gateway.service\n",[495,10901,10902],{"__ignoreMap":425},[934,10903,10904,10906,10908],{"class":936,"line":937},[934,10905,1895],{"class":1044},[934,10907,2316],{"class":1048},[934,10909,10910],{"class":1048}," \u002Fetc\u002Fsystemd\u002Fsystem\u002Fhermes-gateway.service\n",[430,10912,10913,10914,10916],{},"Fügen Sie das Folgende ein und ersetzen Sie ",[495,10915,10522],{}," in '\u002Fhome\u002Fhermes' durch Ihren gewünschten Benutzernamen:",[926,10918,10920],{"className":2331,"code":10919,"language":2333,"meta":425,"style":425},"[Unit]\nDescription=Hermes Gateway\nAfter=network.target\n\n[Service]\nUser=hermes\nWorkingDirectory=\u002Fhome\u002Fhermes\nExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes gateway\nRestart=always\nRestartSec=10\nEnvironment=PATH=\u002Fhome\u002Fhermes\u002F.local\u002Fbin:\u002Fusr\u002Flocal\u002Fbin:\u002Fusr\u002Fbin:\u002Fbin\n\n[Install]\nWantedBy=multi-user.target\n",[495,10921,10922,10926,10931,10935,10939,10943,10947,10951,10956,10960,10964,10968,10972,10976],{"__ignoreMap":425},[934,10923,10924],{"class":936,"line":937},[934,10925,2340],{},[934,10927,10928],{"class":936,"line":1064},[934,10929,10930],{},"Description=Hermes Gateway\n",[934,10932,10933],{"class":936,"line":1071},[934,10934,2350],{},[934,10936,10937],{"class":936,"line":1078},[934,10938,1068],{"emptyLinePlaceholder":1067},[934,10940,10941],{"class":936,"line":1927},[934,10942,2359],{},[934,10944,10945],{"class":936,"line":1932},[934,10946,2364],{},[934,10948,10949],{"class":936,"line":1938},[934,10950,2369],{},[934,10952,10953],{"class":936,"line":2275},[934,10954,10955],{},"ExecStart=\u002Fhome\u002Fhermes\u002F.local\u002Fbin\u002Fhermes gateway\n",[934,10957,10958],{"class":936,"line":2286},[934,10959,2379],{},[934,10961,10962],{"class":936,"line":1699},[934,10963,2384],{},[934,10965,10966],{"class":936,"line":2387},[934,10967,2390],{},[934,10969,10970],{"class":936,"line":2393},[934,10971,1068],{"emptyLinePlaceholder":1067},[934,10973,10974],{"class":936,"line":2398},[934,10975,2401],{},[934,10977,10978],{"class":936,"line":2404},[934,10979,2407],{},[430,10981,2412],{},[926,10983,10985],{"className":2305,"code":10984,"language":2307,"meta":425,"style":425},"sudo systemctl daemon-reload\nsudo systemctl enable hermes-gateway\nsudo systemctl start hermes-gateway\nsudo systemctl status hermes-gateway\n",[495,10986,10987,10995,11006,11016],{"__ignoreMap":425},[934,10988,10989,10991,10993],{"class":936,"line":937},[934,10990,1895],{"class":1044},[934,10992,1898],{"class":1048},[934,10994,2426],{"class":1048},[934,10996,10997,10999,11001,11003],{"class":936,"line":1064},[934,10998,1895],{"class":1044},[934,11000,1898],{"class":1048},[934,11002,2025],{"class":1048},[934,11004,11005],{"class":1048}," hermes-gateway\n",[934,11007,11008,11010,11012,11014],{"class":936,"line":1071},[934,11009,1895],{"class":1044},[934,11011,1898],{"class":1048},[934,11013,2446],{"class":1048},[934,11015,11005],{"class":1048},[934,11017,11018,11020,11022,11024],{"class":936,"line":1078},[934,11019,1895],{"class":1044},[934,11021,1898],{"class":1048},[934,11023,1922],{"class":1048},[934,11025,11005],{"class":1048},[474,11027,2575],{"id":2574},[430,11029,11030],{},"In diesem Artikel haben wir uns darauf konzentriert, wie Sie den Hermes Agent einrichten und über Telegram mit ihm kommunizieren können. Den Hermes Agent auf einem Remote-Server laufen zu lassen, bietet Ihnen einen echten digitalen Assistenten, der rund um die Uhr einsatzbereit ist.",[1643,11032,11033],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":425,"searchDepth":1064,"depth":1071,"links":11035},[11036,11037,11042,11043,11044],{"id":10451,"depth":1064,"text":10452},{"id":10461,"depth":1064,"text":10462,"children":11038},[11039,11040,11041],{"id":10465,"depth":1071,"text":10466},{"id":10618,"depth":1071,"text":10619},{"id":10716,"depth":1071,"text":10717},{"id":10830,"depth":1064,"text":10831},{"id":10892,"depth":1064,"text":10893},{"id":2574,"depth":1064,"text":2575},[1663],"2026-06-19","Stellen Sie den Hermes Agent auf einem Linux-VPS für 24\u002F7-Uptime bereit. Folgen Sie unserer Schritt-für-Schritt-Anleitung zur Telegram-Bot-Integration.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FHow%20to%20Setup%20Hermes%20on%20Remote%20Server\u002FDE-How%20to%20Setup%20Hermes%20on%20Remote%20Server.webp","Schritt-für-Schritt-Anleitung zur Bereitstellung des Hermes Agents auf einem Linux-VPS und der Telegram-Bot-Integration.",{"schemaOrg":11051,"robots":1697,"sitemap":11063},[11052],{"@type":1676,"name":1732,"description":11047,"image":11048,"step":11053},[11054,11057,11060],{"@type":1679,"name":10466,"text":11055,"image":10488,"url":11056},"Öffnen Sie das Terminal und verbinden Sie sich per SSH mit Ihrem Remote-Server: Stellen Sie sicher, dass Ihre Server-Pakete auf dem neuesten Stand ...","#schritt-1-verbindung-mit-ihrem-vps-herstellen",{"@type":1679,"name":10619,"text":11058,"image":10647,"url":11059},"Führen Sie den folgenden Befehl aus: Überprüfen Sie nach der Installation die Version mit dem Befehl: Führen Sie `hermes setup` aus, um den Hermes ...","#schritt-2-hermes-agent-installieren",{"@type":1679,"name":10717,"text":11061,"image":10727,"url":11062},"Wählen Sie `[2]`, um den Telegram-Bot zu nutzen. Gehen Sie zu `Telegram` und suchen Sie nach 'BotFather'. Klicken Sie auf `Open`, um 'BotFather' zu...","#schritt-3-integration-mit-telegram",{"lastmod":11046},{"title":11065,"description":11047,"ogTitle":1732,"ogDescription":11047,"twitterTitle":1732,"twitterDescription":11047},"Hermes Agent VPS Setup: Telegram Bot Integration Guide","de\u002Farticle\u002Fhow-to-setup-hermes-on-remote-server",[1718,11068,11069,11070,8730],"VPS Setup","Telegram Bot","Linux VPS","cKpr9OcLUYdCKVudSw1JjNmmNcNSc-G8vea8EH0a3sk",{"id":11073,"title":11074,"author":1706,"body":11075,"category":11512,"date":11513,"description":11514,"extension":1668,"image":11515,"imageAlt":11516,"isPublished":1067,"meta":11517,"minRead":2275,"navigation":1067,"path":23,"seo":11521,"stem":11523,"tags":11524,"updatedAt":1706,"__hash__":11528},"article\u002Fde\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude.md","NetSuite AI Connector Handbuch: MCP-Setup & Use Cases",{"type":427,"value":11076,"toc":11498},[11077,11080,11095,11099,11110,11126,11130,11260,11264,11318,11322,11374,11378,11382,11388,11393,11397,11403,11415,11419,11429,11445,11449,11455,11460,11464,11470,11473,11475],[430,11078,11079],{},"Oracle NetSuite ist seit langem eine führende cloudbasierte ERP-Plattform (Enterprise Resource Planning) für kleine bis mittlere Unternehmen. Die Benutzeroberfläche der Website ist jedoch berüchtigt für ihre steile Lernkurve, klickintensive Navigation und starre Reporting-Strukturen.",[430,11081,11082,11083,11086,11087,11090,11091,11094],{},"Mit der kürzlichen Veröffentlichung des ",[441,11084,11085],{},"NetSuite AI Connector Service"," können Anwender das ",[441,11088,11089],{},"Model Context Protocol (MCP)"," sowie ",[441,11092,11093],{},"KI-Assistenten (Künstliche Intelligenz)"," nutzen, um direkt in natürlicher Sprache Fragen zu stellen und Echtzeit-Antworten aus ihren Finanz- und Betriebsdaten zu erhalten.",[474,11096,11098],{"id":11097},"funktionsweise-des-netsuite-mcp-ai-connectors","Funktionsweise des NetSuite MCP AI Connectors",[430,11100,11101,11102,11105,11106,11109],{},"Das ",[441,11103,11104],{},"MCP von NetSuite"," stellt der ",[441,11107,11108],{},"KI"," eine Reihe von Tools zur Verfügung, wie z. B. das Ausführen von SuiteQL-Abfragen, das Auslesen von gespeicherten Suchen (Saved Searches) und Berichten oder das Ausführen von Datensatzoperationen wie dem Erstellen eines neuen Datensatzes. Alle Tools unterliegen den nativen rollenbasierten Berechtigungen von NetSuite.",[430,11111,11112,11113,11115,11116,11118,11119,11122,11123,11125],{},"Wenn ein Benutzer eine Frage in natürlicher Sprache stellt, übersetzt die ",[441,11114,11108],{}," die Anfrage mithilfe des ",[441,11117,11089],{}," in strukturierte Operationen, die NetSuite versteht. ",[441,11120,11121],{},"NetSuite"," führt die Operationen unter Verwendung der Berechtigungen des Benutzers aus, und die Ergebnisse werden zur Analyse und Präsentation an die ",[441,11124,11108],{}," zurückgegeben.",[474,11127,11129],{"id":11128},"installationsanleitung-für-den-netsuite-ai-connector","Installationsanleitung für den NetSuite AI Connector",[533,11131,11132,11184,11198,11206,11213,11220,11241],{},[488,11133,11134,11135,576,11138,11141],{},"Aktivieren Sie ",[441,11136,11137],{},"Server SuiteScript",[441,11139,11140],{},"REST Web Services",[533,11142,11143,11153,11179],{},[488,11144,2170,11145,11148,11149],{},[901,11146,11147],{},"Setup > Company > Enable Features"," (bzw. Setup > Unternehmen > Funktionen aktivieren).\n",[433,11150],{"alt":11151,"src":11152},"Oracle NetSuite-Konfigurationsoberfläche 'Funktionen aktivieren' unter Setup-Unternehmen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-setup-company-enable-features.webp",[488,11154,11155,11156,1372,11159],{},"Auf der Registerkarte ",[441,11157,11158],{},"SuiteCloud",[485,11160,11161,11170],{},[488,11162,11163,11164,10790,11166],{},"Aktivieren Sie unter SuiteScript das Kontrollkästchen ",[441,11165,11137],{},[433,11167],{"alt":11168,"src":11169},"Aktivieren von Server-SuiteScript im NetSuite SuiteCloud-Tab","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-enable-features-server-suitescript.webp",[488,11171,11172,11173,10790,11175],{},"Aktivieren Sie unter SuiteTalk (Web Services) das Kontrollkästchen ",[441,11174,11140],{},[433,11176],{"alt":11177,"src":11178},"Aktivieren von REST-Webdiensten im NetSuite SuiteCloud-Tab","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-enable-features-rest-web-services.webp",[488,11180,4273,11181,11183],{},[441,11182,1142],{}," (Speichern).",[488,11185,11186,11187,11190,11191,10790,11194],{},"Installieren Sie zuerst die ",[441,11188,11189],{},"NetSuite MCP Standard Tools",". Klicken Sie auf ",[901,11192,11193],{},"Customization > SuiteCloud Development > SuiteApp Marketplace",[433,11195],{"alt":11196,"src":11197},"Navigation zum NetSuite SuiteApp Marketplace unter Anpassung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-suiteapp-marketplace-navigation.webp",[488,11199,3035,11200,10790,11202],{},[441,11201,11189],{},[433,11203],{"alt":11204,"src":11205},"Suche nach NetSuite MCP Standard Tools im SuiteApp-Marktplatz","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-suiteapp-marketplace-search-mcp-tools.webp",[488,11207,11208,11209],{},"Nach der Installation wird rechts der Status 'Installed' angezeigt.\n",[433,11210],{"alt":11211,"src":11212},"Erfolgreich installierte NetSuite MCP Standard Tools im Marktplatz","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-suiteapp-installed-status-mcp-tools.webp",[488,11214,11215,11216],{},"Folgen Sie denselben Anweisungen um den 'NetSuite AI Connector Service Companion' zu installieren.\n",[433,11217],{"alt":11218,"src":11219},"Erfolgreich installierter NetSuite AI Connector Service Companion","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-suiteapp-installed-ai-connector-companion.webp",[488,11221,11222,11223],{},"Integrationsdatensatz (Integration Record) einrichten\n",[533,11224,11225,11234],{},[488,11226,2170,11227,10790,11230],{},[901,11228,11229],{},"Setup > Integration > Manage Integrations",[433,11231],{"alt":11232,"src":11233},"Navigation zu Integrationen verwalten im NetSuite-Setup-Menü","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-integration-manage-integrations-navigation.webp",[488,11235,11236,11237],{},"Erstellen Sie einen Integrationsdatensatz für ChatGPT. Den tatsächlichen token_id tragen wir später ein:\n",[433,11238],{"alt":11239,"src":11240},"Erstellen eines neuen Integrationsdatensatzes in NetSuite für ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-create-integration-record-chatgpt.webp",[488,11242,11243,11244,11248,11252,11256],{},"Erstellen Sie eine benutzerdefinierte Rolle für MCP mit den Mindestberechtigungen und weisen Sie diese den Benutzern zu, z. B.:\n",[433,11245],{"alt":11246,"src":11247},"Konfiguration der benutzerdefinierten Berechtigungen für NetSuite MCP - Teil 1","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-custom-role-mcp-permissions-1.webp",[433,11249],{"alt":11250,"src":11251},"Konfiguration der benutzerdefinierten Berechtigungen für NetSuite MCP - Teil 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-custom-role-mcp-permissions-2.webp",[433,11253],{"alt":11254,"src":11255},"Konfiguration der benutzerdefinierten Berechtigungen für NetSuite MCP - Teil 3","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-custom-role-mcp-permissions-3.webp",[433,11257],{"alt":11258,"src":11259},"Konfiguration der benutzerdefinierten Berechtigungen für NetSuite MCP - Teil 4","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-custom-role-mcp-permissions-4.webp",[474,11261,11263],{"id":11262},"so-integrieren-sie-netsuite-mcp-in-chatgpt","So integrieren Sie NetSuite MCP in ChatGPT",[533,11265,11266,11273,11280,11287,11297,11304,11311],{},[488,11267,11268,11269],{},"Klicken Sie auf 'Settings' (Einstellungen).\n",[433,11270],{"alt":11271,"src":11272},"Navigation zu den Einstellungen in der ChatGPT-Benutzeroberfläche","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-settings-navigation.webp",[488,11274,11275,11276],{},"Klicken Sie auf 'Apps' > 'Advanced settings' (Erweiterte Einstellungen).\n",[433,11277],{"alt":11278,"src":11279},"Navigation zu Apps und erweiterten Einstellungen in ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-apps-advanced-settings.webp",[488,11281,11282,11283],{},"Aktivieren Sie den 'Developer mode' (Entwicklermodus) und klicken Sie dann auf 'Create app' (App erstellen).\n",[433,11284],{"alt":11285,"src":11286},"Aktivieren des Entwicklermodus und Erstellen einer neuen App in ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-developer-mode-create-app.webp",[488,11288,11289,11290,10790,11293],{},"Tragen Sie die Details ein. Geben Sie für Connection (Verbindung) Folgendes ein: ",[495,11291,11292],{},"https:\u002F\u002F\u003Caccount_id>.suitetalk.api.netsuite.com\u002Fservices\u002Fmcp\u002Fv1\u002Fall",[433,11294],{"alt":11295,"src":11296},"Eingabe der NetSuite MCP-Verbindungs-URL zur App-Erstellung in ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-create-app-netsuite-mcp-connection.webp",[488,11298,11299,11300],{},"Klicken Sie auf 'Create'. Sobald die Integration abgeschlossen ist, sehen Sie folgendes Pop-up-Fenster.\n",[433,11301],{"alt":11302,"src":11303},"Pop-up-Bestätigung über die erfolgreiche NetSuite MCP-Integration in ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-netsuite-mcp-integrated-popup.webp",[488,11305,11306,11307],{},"Klicken Sie auf 'Sign in with NetSuite MCP' (Mit NetSuite MCP anmelden).\n",[433,11308],{"alt":11309,"src":11310},"ChatGPT-Aufforderung zur Anmeldung mit den NetSuite MCP Standard-Tools","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-sign-in-with-netsuite-mcp.webp",[488,11312,11313,11314],{},"Klicken Sie auf 'Continue' (Weiter), um die Berechtigungen zu erteilen.\n",[433,11315],{"alt":11316,"src":11317},"Erteilung der Verbindungsberechtigungen für NetSuite MCP in ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-grant-permissions-netsuite-mcp.webp",[474,11319,11321],{"id":11320},"so-integrieren-sie-netsuite-mcp-in-claude-ai","So integrieren Sie NetSuite MCP in Claude AI",[533,11323,11324,11331,11338,11345,11360,11367],{},[488,11325,11326,11327],{},"Klicken Sie auf 'Customize' (Anpassen).\n",[433,11328],{"alt":11329,"src":11330},"Klicken auf die Anpassungsoption in der Claude AI-Benutzeroberfläche","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-customize-navigation.webp",[488,11332,11333,11334],{},"Klicken Sie auf 'Connect your apps' (Apps verbinden).\n",[433,11335],{"alt":11336,"src":11337},"Auswählen von 'Apps verbinden' in den Claude AI-Anpassungseinstellungen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-connect-your-apps.webp",[488,11339,11340,11341],{},"Suchen Sie nach 'NetSuite'.\n",[433,11342],{"alt":11343,"src":11344},"Suche nach der NetSuite-Anwendung in Claude AI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-search-netsuite-app.webp",[488,11346,11347,11348,11351,11352,11355,11356],{},"Klicken Sie auf 'NetSuite' und geben Sie die Server-URL ein: ",[495,11349,11350],{},"https:\u002F\u002F\u003Caccount_id>.suitetalk.api.netsuite.com\u002Fservices\u002Fmcp\u002Fv1\u002Fsuiteapp\u002Fcom.netsuite.mcpstandardtools",". Ersetzen Sie ",[495,11353,11354],{},"\u003Caccount_id>"," durch Ihre tatsächliche Account-ID.\n",[433,11357],{"alt":11358,"src":11359},"Eingabe der NetSuite MCP-Serververbindungs-URL in Claude AI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-netsuite-mcp-server-url-setup.webp",[488,11361,11362,11363],{},"Klicken Sie auf die Schaltfläche 'Continue'.\n",[433,11364],{"alt":11365,"src":11366},"Klicken auf Weiter zur Authentifizierung des NetSuite MCP-Servers in Claude","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-netsuite-mcp-continue-authentication.webp",[488,11368,11369,11370],{},"Klicken Sie auf 'Continue', um den Connector zu authentifizieren.\n",[433,11371],{"alt":11372,"src":11373},"Abschließende Authentifizierungsbestätigung für den NetSuite MCP-Connector in Claude AI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-netsuite-mcp-authenticate-connector.webp",[474,11375,11377],{"id":11376},"netsuite-ki-anwendungsfälle","NetSuite KI-Anwendungsfälle",[881,11379,11381],{"id":11380},"anwendungsfall-in-chatgpt-überfällige-rechnungen-über-30-tage-in-netsuite-anzeigen","Anwendungsfall in ChatGPT: Überfällige Rechnungen über 30 Tage in NetSuite anzeigen",[430,11383,11384],{},[433,11385],{"alt":11386,"src":11387},"ChatGPT führt eine SuiteQL-Abfrage aus, um überfällige NetSuite-Rechnungen anzuzeigen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-netsuite-overdue-invoices-query-result.webp",[485,11389,11390],{},[488,11391,11392],{},"ChatGPT hat die SuiteQL-Abfrage erstellt und ausgeführt. Dies ist äußerst praktisch und spart im Vergleich zur Berichterstellung über die normale NetSuite-Benutzeroberfläche sehr viel Zeit.",[881,11394,11396],{"id":11395},"anwendungsfall-in-chatgpt-und-claude-können-sie-die-umsätze-der-letzten-30-tage-in-einem-liniendiagramm-darstellen","Anwendungsfall in ChatGPT und Claude: Können Sie die Umsätze der letzten 30 Tage in einem Liniendiagramm darstellen?",[430,11398,11399],{},[433,11400],{"alt":11401,"src":11402},"Fehlgeschlagene Darstellung eines Umsatz-Liniendiagramms aus NetSuite-Daten in ChatGPT","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-failed-render-netsuite-sales-line-graph.webp",[485,11404,11405,11408],{},[488,11406,11407],{},"ChatGPT war nicht in der Lage, das Liniendiagramm zu zeichnen.",[488,11409,11410,11411],{},"Ich habe es in Claude versucht, und dort hat es funktioniert. Der Unterschied liegt wahrscheinlich in den Fähigkeiten des Large Language Models (LLM).\n",[433,11412],{"alt":11413,"src":11414},"Claude AI stellt ein Liniendiagramm der NetSuite-Umsätze erfolgreich visuell dar","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-successfully-rendered-netsuite-sales-line-graph.webp",[881,11416,11418],{"id":11417},"anwendungsfall-in-claude-kundendatensatz-erstellen","Anwendungsfall in Claude: Kundendatensatz erstellen",[430,11420,11421,11425],{},[433,11422],{"alt":11423,"src":11424},"Claude AI-Aufforderung zur Erstellung eines neuen Kundendatensatzes in NetSuite","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-create-netsuite-customer-record-prompt.webp",[433,11426],{"alt":11427,"src":11428},"Claude AI-Bestätigung der erfolgreichen Erstellung des NetSuite-Kundendatensatzes","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-create-netsuite-customer-record-success.webp",[485,11430,11431,11438],{},[488,11432,11433,11434],{},"Ein Abgleich in der normalen NetSuite-Benutzeroberfläche bestätigt, dass der Datensatz erfolgreich erstellt wurde.\n",[433,11435],{"alt":11436,"src":11437},"Überprüfung des neu erstellten Kundendatensatzes in der NetSuite-Benutzeroberfläche","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fnetsuite-ui-verify-new-customer-record-created.webp",[488,11439,11440,11441],{},"Das Ausführen in ChatGPT zeigt, dass der Datensatz verfügbar ist:\n",[433,11442],{"alt":11443,"src":11444},"ChatGPT bestätigt die Verfügbarkeit des neuen NetSuite-Kundendatensatzes","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fchatgpt-verify-netsuite-customer-record-available.webp",[881,11446,11448],{"id":11447},"anwendungsfall-in-claude-suiteql-abfrage-ausführen","Anwendungsfall in Claude: SuiteQL-Abfrage ausführen",[430,11450,11451],{},[433,11452],{"alt":11453,"src":11454},"Claude AI führt eine NetSuite SuiteQL-Abfrage direkt aus und zeigt die Ergebnisse an","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002Fclaude-ai-run-suiteql-query-result.webp",[485,11456,11457],{},[488,11458,11459],{},"Die SuiteQL-Abfrage kann direkt ausgeführt werden.",[474,11461,11463],{"id":11462},"fazit-zum-netsuite-ai-connector","Fazit zum NetSuite AI Connector",[430,11465,11466,11467,11469],{},"Der größte Vorteil bei der Nutzung von MCP liegt bei Anwendern, die nicht über das technische Know-how verfügen, um komplexe Berichte manuell zu erstellen. Diese Benutzer können Daten einfach in natürlicher Sprache abfragen und die ",[441,11468,11108],{}," bitten, den Bericht genau so darzustellen, wie sie ihn benötigen.",[430,11471,11472],{},"Um Prompt-Injection-Angriffe und den Missbrauch von Schreiboperationen zu verhindern, sollten Sie Schreibberechtigungen nur für bestimmte Datensätze und Transaktionen erteilen. Wenn die KI via MCP einen Datensatz aktualisiert oder erstellt, wird dies als serverseitiges SuiteScript ausgeführt. Dadurch werden clientseitige Skripte oder Formularvalidierungen vollständig umgangen.",[474,11474,1615],{"id":1614},[485,11476,11477,11484,11491],{},[488,11478,11479],{},[444,11480,11483],{"href":11481,"rel":11482},"https:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fcloud\u002Fsaas\u002Fnetsuite\u002Fns-online-help\u002Farticle_0902023450.html#subsect_90090238176",[448],"Installation der MCP Standard Tools SuiteApp",[488,11485,11486],{},[444,11487,11490],{"href":11488,"rel":11489},"https:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fcloud\u002Fsaas\u002Fnetsuite\u002Fns-online-help\u002Farticle_4160616848.html#subsect_0419123151",[448],"NetSuite AI Connector Service FAQ",[488,11492,11493],{},[444,11494,11497],{"href":11495,"rel":11496},"https:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fcloud\u002Fsaas\u002Fnetsuite\u002Fns-online-help\u002Fsection_0714082142.html#bridgehead_0804033331",[448],"Verbindung mit dem NetSuite AI Connector Service herstellen",{"title":425,"searchDepth":1064,"depth":1071,"links":11499},[11500,11501,11502,11503,11504,11510,11511],{"id":11097,"depth":1064,"text":11098},{"id":11128,"depth":1064,"text":11129},{"id":11262,"depth":1064,"text":11263},{"id":11320,"depth":1064,"text":11321},{"id":11376,"depth":1064,"text":11377,"children":11505},[11506,11507,11508,11509],{"id":11380,"depth":1071,"text":11381},{"id":11395,"depth":1071,"text":11396},{"id":11417,"depth":1071,"text":11418},{"id":11447,"depth":1071,"text":11448},{"id":11462,"depth":1064,"text":11463},{"id":1614,"depth":1064,"text":1615},[1663],"2026-06-13","Richten Sie den NetSuite AI Connector (MCP) mit ChatGPT und Claude ein. Fragen Sie ERP-Daten ab und automatisieren Sie Aufgaben in natürlicher Sprache.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20NetSuite%20MCP%20on%20ChatGPT%20%26%20Claude\u002FDE-Setup-NetSuite-MCP-on-ChatGPT-%26-Claude.webp","NetSuite MCP KI-Integration Vorschaubild mit dunkelblauem Firmenhintergrund, auf dem ChatGPT- und Claude-Logos mit der NetSuite-Cloud-Datenbank verbunden sind",{"schemaOrg":11518,"robots":1697,"sitemap":11520},[11519],{"@type":1674,"headline":11074,"description":11514},{"lastmod":11513},{"title":11522,"description":11514,"ogTitle":11074,"ogDescription":11514,"twitterTitle":11074,"twitterDescription":11514},"NetSuite MCP AI-Integration: ChatGPT & Claude verbinden","de\u002Farticle\u002Fsetup-netsuite-mcp-on-chatgpt-claude",[11121,6961,11525,11526,11527],"ChatGPT","Claude","AI","MiqITlpW1MQRB2qKG2dTuGA1vkClIxvXcAUlITtl-uM",{"id":11530,"title":11531,"author":1706,"body":11532,"category":11725,"date":11726,"description":11727,"extension":1668,"image":11728,"imageAlt":11729,"isPublished":1067,"meta":11730,"minRead":1927,"navigation":1067,"path":29,"seo":11734,"stem":11735,"tags":11736,"updatedAt":1706,"__hash__":11740},"article\u002Fde\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis.md","Test von Claude Fable 5: Ein Review zur Finanzanalyse",{"type":427,"value":11533,"toc":11723},[11534,11545,11556,11559,11565,11581,11591,11597,11603,11609,11630,11639,11653,11661,11680,11683,11694,11703,11706,11720],[430,11535,11536,11537,11540,11541],{},"Am 9. Juni 2026 veröffentlichte Anthropic ",[441,11538,11539],{},"Claude Fable 5",", ein Modell der Mythos-Klasse mit fortschrittlichen Sicherheitsvorkehrungen in Bereichen wie Cybersicherheit, Destillation, Chemie und Biologie.\n",[433,11542],{"alt":11543,"src":11544},"Anthropic Claude Fable 5 Veröffentlichungsankündigung und erweiterte Modellfähigkeiten","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-launch-announcement.webp",[430,11546,11547,11548,11551,11552],{},"Anthropic hat Zahlen vorgelegt, wonach Fable 5 bei mehreren wichtigen Benchmarks vor Opus 4.8 und GPT-5.5 liegt. Bei ",[441,11549,11550],{},"GDPval-AA (Wissensarbeit)"," übertrifft es Opus 4.8, GPT 5.5 und Gemini 3.1 Pro deutlich.\n",[433,11553],{"alt":11554,"src":11555},"Claude Fable 5 Benchmark-Vergleich inklusive GDPval-AA Wissensarbeit-Ergebnis","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-benchmarks-gdpval-aa.webp",[430,11557,11558],{},"Laut Claude zeigt „Fable 5 eine starke Leistung bei komplexen analytischen Aufgaben“.",[430,11560,11561],{},[433,11562],{"alt":11563,"src":11564},"Claude Fable 5 Leistungsbeschreibung bei komplexen analytischen Datenaufgaben","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-analytical-performance-statement.webp",[430,11566,11567,11568,11571,11572,11575,11576,552],{},"Wir haben uns entschieden, ",[441,11569,11570],{},"Fable 5"," zu testen, indem wir eine Analyse von 'Space Exploration Technologies Corporation (SpaceX)' für Anlageforschungszwecke mithilfe des Skills '",[441,11573,11574],{},"comps-analysis","' durchgeführt haben. Die Datei 'skill.md' stammte aus dem ",[444,11577,11580],{"href":11578,"rel":11579},"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Ffinancial-services\u002Fblob\u002Fmain\u002Fplugins\u002Fagent-plugins\u002Fmarket-researcher\u002Fskills\u002Fcomps-analysis\u002FSKILL.md",[448],"GitHub-Repository für Finanzdienstleistungen von Anthropic",[430,11582,11583,11587],{},[433,11584],{"alt":11585,"src":11586},"Start des SpaceX Comps-Analyse-Skills im Desktop-Chat von Claude","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fspacex-comps-analysis-skill-initiation.webp",[433,11588],{"alt":11589,"src":11590},"Claude Fable 5 führt die automatisierte Finanzanalyse für SpaceX aus","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fspacex-comps-analysis-running-progress.webp",[430,11592,11593],{},[433,11594],{"alt":11595,"src":11596},"Endergebnis des automatisierten SpaceX-Finanzanalyse-Arbeitsablaufs im Terminal","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fspacex-comps-analysis-skill-results-terminal.webp",[430,11598,11599,11600,11602],{},"Die Aufgabe dauerte etwa 25 Minuten. Claude stellte keine klärenden Fragen, außer der Bitte um Erlaubnis für den Zugriff auf externe Websites. Beeindruckend war, dass ",[441,11601,11570],{}," in der Lage war, die Vergleichsunternehmen selbstständig zu ermitteln.",[430,11604,11605],{},[433,11606],{"alt":11607,"src":11608},"Claude Fable 5 bittet um explizite Erlaubnis für den Zugriff auf externe Webquellen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-external-site-access-permission.webp",[430,11610,11611,11615,11616,11619,11620,576,11625,552],{},[433,11612],{"alt":11613,"src":11614},"Von Claude Fable 5 eigenständig ermittelte SpaceX-Vergleichsunternehmen für das Peer-Group-Matching","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-spacex-comps-excel-memo.webp","\n*",[441,11617,11618],{},"Bitte beachten Sie:"," Dies dient Forschungs- und Bildungszwecken und stellt keine Anlageberatung dar. Die generierten Originaldateien können hier heruntergeladen werden: ",[444,11621,11624],{"href":11622,"rel":11623},"https:\u002F\u002Ftechvoyage.dev\u002FSpaceX_Comps_Analysis_2026-06-10.xlsx",[448],"SpaceX_Comps_Analysis_2026-06-10.xlsx",[444,11626,11629],{"href":11627,"rel":11628},"https:\u002F\u002Ftechvoyage.dev\u002FSpaceX_Comps_Memo_2026-06-10.pdf",[448],"SpaceX_Comps_Memo_2026-06-10.pdf",[430,11631,11632,11633,11636,11637,552],{},"Als wir den gleichen Skill mit ",[441,11634,11635],{},"Qwen deep research"," getestet haben, mussten wir die Vergleichsunternehmen manuell eingeben. Die numerischen Zahlen unterschieden sich leicht im Vergleich zu ",[441,11638,11570],{},[430,11640,11641,11645,11649],{},[433,11642],{"alt":11643,"src":11644},"Start der SpaceX-Finanzanalyse in Qwen Deep Research für das Investment-Benchmarking","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fqwen-deep-research-spacex-comps-initiation.webp",[433,11646],{"alt":11647,"src":11648},"Manuelle Eingabe der SpaceX-Vergleichsunternehmen in Qwen für die Finanzbewertung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fqwen-deep-research-spacex-comps-running.webp",[433,11650],{"alt":11651,"src":11652},"Vorschau des von Qwen automatisch erstellten SpaceX-Finanzberichts","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fqwen-deep-research-spacex-comps-report-preview.webp",[430,11654,11655,11656,552],{},"*Der von Qwen erstellte Bericht kann hier heruntergeladen werden: ",[444,11657,11660],{"href":11658,"rel":11659},"https:\u002F\u002Ftechvoyage.dev\u002FThe_SpaceX_Comp_Analysis_A_Statistical_Benchmark_of_Growth_Efficiency_and_Valuation_Against_Public_Peers.pdf",[448],"The_SpaceX_Comp_Analysis_A_Statistical_Benchmark_of_Growth_Efficiency_and_Valuation_Against_Public_Peers.pdf",[430,11662,11663,11664,11667,11668,11671,11672,11676],{},"Obwohl beide Berichte von Claude und Qwen auf derselben im Skill angegebenen Methodik basierten, variierten die Zahlen, da Claude und Qwen unterschiedliche Quellen nutzten. Beispielsweise verwendete Claude Fable 5 ",[441,11665,11666],{},"Stock Analysis",", während Qwen ",[441,11669,11670],{},"SEC.gov"," heranzog.\n",[433,11673],{"alt":11674,"src":11675},"Von Claude Fable 5 aus Stock Analysis extrahierte Finanz- und Marktdaten","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-data-source-stock-analysis.webp",[433,11677],{"alt":11678,"src":11679},"Von Qwen Deep Research genutzte SEC-Dokumente und SEC.gov-Datenquellen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fqwen-deep-research-data-source-sec-gov.webp",[430,11681,11682],{},"Der Bericht von Qwen enthielt zudem deutlich mehr Informationen zum Geschäftsmodell, zur Kapitalstruktur und zum operativen Geschäft.",[430,11684,11685,11686,11689,11690],{},"Nach dem Vergleich der Berichte haben wir uns entschieden, es erneut mit dem Befehl ",[495,11687,11688],{},"\u002Fresearch"," in der Claude-Desktop-App zu versuchen.\n",[433,11691],{"alt":11692,"src":11693},"Verwendung des neuen Research-Befehls in der Claude Desktop-App für detaillierte Unternehmensanalysen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-desktop-research-command-spacex.webp",[430,11695,11696,11697,11702],{},"Der neu erstellte Analysebericht, ",[444,11698,11701],{"href":11699,"rel":11700},"https:\u002F\u002Ftechvoyage.dev\u002FSpaceX_Analysis.pdf",[448],"SpaceX_Analysis.pdf",", enthielt zusätzliche Abschnitte für Empfehlungen und Einschränkungen. Im Vergleich zu Qwen deep research fehlten ihm jedoch weiterhin detaillierte Unternehmensdaten wie Betriebs- und Kapitalstruktur.",[430,11704,11705],{},"Ist Fable 5 seinen Premium-Preis wert? Für anspruchsvolle, zeitintensive Aufgaben und autonomes Coden mag das zutreffen. Aber für bestimmte Wissensarbeiten wie Unternehmensanalysen bietet es vielleicht noch nicht das beste Preis-Leistungs-Verhältnis.",[430,11707,11708,11709,11711,11712,11715,11716],{},"Am Ende haben wir getestet, wie gut ",[441,11710,11570],{}," beim Übersetzen abschneidet. Seltsamerweise wechselte das Modell automatisch zu ",[441,11713,11714],{},"Opus 4.8"," zurück.\n",[433,11717],{"alt":11718,"src":11719},"Die Claude Desktop-App wechselt automatisch vom Fable 5-Modell zurück zu Opus 4.8","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002Fclaude-fable-5-translation-opus-switching.webp",[430,11721,11722],{},"Bedeutet das, dass jede Konvertierung mit langem Kontext auf Opus 4.8 zurückgesetzt wird? Ist dies nur eine vorübergehende Marotte vor dem 22. Juni? Oder ist das System schlicht intelligent genug zu erkennen, dass die Übersetzung kein so leistungsstarkes Modell erfordert?",{"title":425,"searchDepth":1064,"depth":1071,"links":11724},[],[1663],"2026-06-11","Wir testen Anthropics neues Claude Fable 5 gegen Qwen Deep Research in der Finanzanalyse. Lohnt sich das teure Upgrade für anspruchsvolle KI-Aufgaben wirklich?","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FTesting%20Claude%20Fable%205%20in%20Financial%20Analysis\u002FDE-Testing-Claude-Fable-5-in-Financial-Analysis.webp","Claude Fable 5 vs. Qwen: KI-Finanzanalyse im Test",{"schemaOrg":11731,"robots":1697,"sitemap":11733},[11732],{"@type":1674,"headline":11531,"description":11727},{"lastmod":11726},{"title":11729,"description":11727,"ogTitle":11531,"ogDescription":11727,"twitterTitle":11531,"twitterDescription":11727},"de\u002Farticle\u002Ftesting-claude-fable-5-in-financial-analysis",[11539,11737,11738,11739],"Finanzanalyse","Qwen Deep Research","KI-Benchmarks","ta4TUz_e9TNlKJKPYFPvb4pLlxkES1aftIS6tUDnaV0",{"id":11742,"title":11743,"author":1706,"body":11744,"category":11952,"date":11953,"description":11954,"extension":1668,"image":11955,"imageAlt":11956,"isPublished":1067,"meta":11957,"minRead":1927,"navigation":1067,"path":31,"seo":11961,"stem":11962,"tags":11963,"updatedAt":1706,"__hash__":11964},"article\u002Fde\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2.md","Browser- und Scheduler-Handbuch für Antigravity 2",{"type":427,"value":11745,"toc":11947},[11746,11760,11764,11770,11779,11794,11800,11803,11814,11818,11821,11828,11835,11846,11849,11855,11866,11872,11882,11895,11905,11915,11918,11924,11926,11936],[430,11747,11748,11749,576,11752,11755,11756,11759],{},"Die Befehle ",[495,11750,11751],{},"\u002Fbrowser",[495,11753,11754],{},"\u002Fschedule"," in ",[441,11757,11758],{},"Google Antigravity 2"," definieren die Interaktion mit KI völlig neu. Diese beiden Befehle machen aus Antigravity eine proaktive Automatisierungsplattform, die mit dem Live-Web interagieren und wiederkehrende Workflows ausführen kann.",[474,11761,11763],{"id":11762},"browser-run","Browser Run",[430,11765,11766,11767,11769],{},"Der Befehl ",[495,11768,11751],{}," erzwingt die Nutzung des Chrome-Browsers zur Erledigung einer Aufgabe. Die Benutzer behalten stets die Kontrolle darüber, wann und wie Agenten während des Workflows auf das Web zugreifen. Während des Prozesses werden Screenshots und Videoclips aufgenommen.",[430,11771,11772,11775],{},[441,11773,11774],{},"Anwendungsfall:",[433,11776],{"alt":11777,"src":11778},"Verwendung des \u002Fbrowser-Befehls zur Einreichung von Krankheitstagen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-command-sick-leave-prompt.webp",[430,11780,11781,11782,11786,11790],{},"Nachfolgend sehen Sie die Ausgaben des Agenten:\n",[433,11783],{"alt":11784,"src":11785},"Browser-Automatisierungs-Subagent startet die Aufgabe zur Einreichung von Krankheitstagen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-subagent-delegation.webp",[433,11787],{"alt":11788,"src":11789},"Browser-Automator richtet Chrome mit Remote-Debugging und Berechtigungen ein","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-permissions-and-chrome-setup.webp",[433,11791],{"alt":11792,"src":11793},"Browser-Subagent pausiert an einer Anmeldemaske und fordert Benutzerdaten an","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-login-wall-encountered.webp",[430,11795,11796],{},[433,11797],{"alt":11798,"src":11799},"Browser-Subagent wartet darauf, dass der Benutzer den Anmeldevorgang abschließt","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-waiting-for-user-login.webp",[430,11801,11802],{},"Antigravity war in der Lage, die Seite zu öffnen und das Formular abzusenden. Wenn ein Login erforderlich ist, der Agent wartet, bis Sie sich auf der Website angemeldet haben.",[430,11804,11805,11810,11811,11813],{},[11806,11807],"video",{"alt":11808,"src":11809,"controls":1067},"Video des Browser-Subagenten bei der Ausführung des Krankheitstage-Einreichungsprozesses","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fbrowser-automation-sick-leave-process.webm","\nDer Befehl ",[495,11812,11751],{}," ist besonders nützlich, wenn wir die aktuellste Web-Dokumentation, Changelogs, Webanwendungs-Tests oder API-Statusprüfungen benötigen, um eine Aufgabe abzuschließen.",[474,11815,11817],{"id":11816},"schedule-task","Schedule Task",[430,11819,11820],{},"Antigravity 2 verfügt über eine integrierte Funktion zur Planung von Aufgaben. Wir testen dies, indem wir alle 10 Minuten automatisch einen Zeiterfassungsbogen (Timesheet) ausfüllen lassen.",[430,11822,11823,11824],{},"Klicken Sie auf 'Scheduled Tasks' (Geplante Aufgaben):\n",[433,11825],{"alt":11826,"src":11827},"Menüoption für geplante Aufgaben in der Seitenleiste","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-menu-item.webp",[430,11829,11830,11831],{},"Klicken Sie auf die Schaltfläche '+ New', um eine neue geplante Aufgabe zu erstellen:\n",[433,11832],{"alt":11833,"src":11834},"Leere Ansicht der geplanten Aufgaben mit einer Schaltfläche für neue Aufgaben","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-empty-state-new-button.webp",[430,11836,11837,11838,11842],{},"Füllen Sie das Formular aus und planen Sie die Aufgabe so, dass sie alle 10 Minuten ausgeführt wird:\n",[433,11839],{"alt":11840,"src":11841},"Ausgefülltes Formular für eine neue geplante Aufgabe zur automatischen Arbeitszeiterfassung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-new-task-form.webp",[433,11843],{"alt":11844,"src":11845},"Aktive Aufgabe zur automatischen Arbeitszeiterfassung in der Liste der geplanten Aufgaben","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-active-task-list.webp",[430,11847,11848],{},"Die Aufgabe wurde ausgelöst, führte jedoch zu einem Fehler.",[430,11850,11851],{},[433,11852],{"alt":11853,"src":11854},"Fehlermeldung, die besagt, dass keine verfügbaren Modelle für die Stufe Flash gefunden wurden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-error-no-models.webp",[430,11856,11857,11858,11861,11862,11865],{},"Wir haben versucht, 'env'-Werte zur Datei ",[495,11859,11860],{},"sidecar.json"," hinzuzufügen, die sich unter ",[495,11863,11864],{},".gemini\u002Fconfig\u002Fsidecars\u002Fauto-timesheet-entry"," befindet, erhielten aber weiterhin denselben Fehler.",[926,11867,11870],{"className":11868,"code":11869,"language":4654},[4652],"    \"env\": {\n        \"GEMINI_MODEL\": \"gemini-3.5-flash\",\n        \"GOOGLE_CLOUD_PROJECT\": \"your-gcp-project-id\"\n    }\n",[495,11871,11869],{"__ignoreMap":425},[430,11873,11874,11875,11878,11879,552],{},"Bei der Überprüfung der Protokolle für geplante Aufgaben unter ",[495,11876,11877],{},".gemini\u002Fantigravity\u002Fsidecar_data\u002F"," sehen wir ",[495,11880,11881],{},"[schedule] Triggering command: \"agentapi\" [new-conversation]",[430,11883,11884,11885,11890,11891,11894],{},"Die Antwort auf unser im ",[444,11886,11889],{"href":11887,"rel":11888},"https:\u002F\u002Fdiscuss.ai.google.dev\u002Ft\u002Fscheduled-tasks-in-antigravity-2-ended-with-errors\u002F168013",[448],"Build with Google AI Forum"," gepostetes Problem deutet darauf hin, dass ein API-Schlüssel für ",[495,11892,11893],{},"agentapi"," erforderlich ist. Wir haben es mit dem API-Schlüssel versucht, hatten jedoch ebenfalls keinen Erfolg.",[430,11896,11897,11898,11900,11901],{},"Wir haben es erneut mit dem Befehl ",[495,11899,11754],{}," direkt im Chatfenster versucht.\n",[433,11902],{"alt":11903,"src":11904},"Verwendung des \u002Fschedule-Befehls zur Ausführung der automatischen Arbeitszeiterfassung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fschedule-command-timesheet-prompt.webp",[430,11906,11907,11908,11910,11911],{},"Aufgaben, die über den Befehl ",[495,11909,11754],{}," geplant wurden, erscheinen nicht im Menüpunkt 'Scheduled Tasks'.\n",[433,11912],{"alt":11913,"src":11914},"Liste der geplanten Aufgaben zeigt keine Aufgaben an, die über den CLI-Befehl erstellt wurden","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fscheduled-tasks-list-missing-cli-task.webp",[430,11916,11917],{},"Der Cron-Job wurde tatsächlich ausgelöst.",[430,11919,11920],{},[433,11921],{"alt":11922,"src":11923},"Cron-Job-Protokoll, das bestätigt, dass er ausgelöst wurde","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002Fcron-job-triggered-log.webp",[474,11925,2575],{"id":2574},[430,11927,11748,11928,576,11930,11932,11933,11935],{},[495,11929,11751],{},[495,11931,11754],{}," in Antigravity 2 sind keine isolierten Funktionen; ihre Kombination schafft ein mächtiges Werkzeug. Sie können beispielsweise einen Agenten so planen, dass er jeden Montagmorgen um 6:00 Uhr über ",[495,11934,11751],{}," Nachrichten- und Informationsseiten aufruft, die Daten synthetisiert und einen umfassenden täglichen Bericht liefert.",[430,11937,11938,11939,11942,11943,11946],{},"Andere Befehle wie ",[495,11940,11941],{},"\u002Fgrill-me"," (erwähnt im Artikel ",[444,11944,11945],{"href":419},"Antigravity 2 in Aktion: KI-Agenten, Skills und MCP-Server",") können beim Entwurf neuer geplanter Aufgaben hilfreich sein. Sie fordern den Agenten auf, Unklarheiten zu hinterfragen und Grenzfälle abzufangen, bevor das Design fertiggestellt wird.",{"title":425,"searchDepth":1064,"depth":1071,"links":11948},[11949,11950,11951],{"id":11762,"depth":1064,"text":11763},{"id":11816,"depth":1064,"text":11817},{"id":2574,"depth":1064,"text":2575},[1663],"2026-06-07","Erfahren Sie, wie die Befehle \u002Fbrowser und \u002Fschedule Google Antigravity 2 in eine leistungsstarke Plattform für proaktive KI-Automatisierung verwandeln.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FUse%20Browser%20and%20Scheduler%20in%20Antigravity%202\u002FDE-Use-Browser-and-Scheduler-in-Antigravity-2.webp","Google Antigravity 2: Automatisierung mit Browser & Schedule",{"schemaOrg":11958,"robots":1697,"sitemap":11960},[11959],{"@type":1674,"headline":11956,"description":11954},{"lastmod":11953},{"title":11956,"description":11954,"ogTitle":11743,"ogDescription":11954,"twitterTitle":11743,"twitterDescription":11954},"de\u002Farticle\u002Fuse-browser-and-scheduler-in-antigravity-2",[],"tnc7_EZisbCpRdvxFiHdQKrETLiHEi3hZcPgFz63wZA",{"id":11966,"title":11945,"author":425,"body":11967,"category":12291,"date":12292,"description":12293,"extension":1668,"image":12294,"imageAlt":12295,"isPublished":1067,"meta":12296,"minRead":1927,"navigation":1067,"path":35,"seo":12300,"stem":12301,"tags":12302,"updatedAt":1706,"__hash__":12303},"article\u002Fde\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2.md",{"type":427,"value":11968,"toc":12281},[11969,11972,11978,11982,11988,11991,11995,12001,12004,12010,12016,12022,12032,12037,12041,12049,12053,12059,12065,12071,12074,12080,12086,12091,12096,12099,12103,12111,12117,12121,12127,12133,12139,12142,12146,12149,12153,12159,12165,12171,12174,12254,12260,12271,12275,12278],[430,11970,11971],{},"Als agentenzentrierte Desktop-Anwendung ermöglicht Antigravity 2 es Benutzern, ein Team von Subagenten zu koordinieren, um beispielsweise eine tägliche Zusammenfassung aus E-Mails und Kalendern zu erstellen oder eine Anwendung zu entwickeln, zu testen und bereitzustellen. Doch wie sieht das in der Praxis konkret aus?",[430,11973,11974,11975,552],{},"Lassen Sie uns herausfinden, was Antigravity 2 für Sie tun kann – von integrierten Befehlen und Skills bis hin zu der Frage, wie Integrationen wie Firebase Model Context Protocol (MCP) Server Entwickler in Full-Stack-Architekten verwandeln. Weitere Informationen zum Einrichten und Konfigurieren von Skills und MCP-Servern finden Sie in diesem Artikel: ",[444,11976,11977],{"href":391},"Google Antigravity 2 im Test: Einrichtung & Eindrücke",[474,11979,11981],{"id":11980},"integrierte-befehle","Integrierte Befehle",[881,11983,11985],{"id":11984},"goal",[495,11986,11987],{},"\u002Fgoal",[430,11989,11990],{},"Mit diesem Befehl weisen Sie den Agenten an, so lange zu laufen, bis eine bestimmte Aufgabe vollständig abgeschlossen ist.",[430,11992,11993],{},[441,11994,11774],{},[430,11996,11997],{},[433,11998],{"alt":11999,"src":12000},"Eingabe des Antigravity 2 Goal-Befehls zum Erstellen eines Textris-Spiels","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-goal-command-prompt.webp",[430,12002,12003],{},"Wenn wir dynamische Subagenten anfordern, werden drei Agenten gestartet, um die Aufgabe zu erledigen.",[430,12005,12006],{},[433,12007],{"alt":12008,"src":12009},"Antigravity 2 generiert Subagenten zur autonomen Aufgabenbewältigung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-spawning-subagents-1.webp",[430,12011,12012],{},[433,12013],{"alt":12014,"src":12015},"Detaillierter Fortschritt der Antigravity 2 Subagenten bei der Ausführung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-spawning-subagents-2.webp",[430,12017,12018],{},[433,12019],{"alt":12020,"src":12021},"Abschluss der autonomen Aufgaben durch Antigravity 2 Subagenten","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-spawning-subagents-3.webp",[430,12023,12024,12025,1372,12028],{},"Um das generierte HTML-basierte Textris-Spiel zu spielen, klicken Sie bitte auf diesen ",[444,12026,6906],{"href":12027},"\u002Ftextris",[11806,12029],{"alt":12030,"src":12031,"controls":1067},"AI generated Textris game in HTML","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fai-generated-textri-game-html.webm",[430,12033,11766,12034,12036],{},[495,12035,11987],{}," erstellt einen Plan, führt diesen Schritt für Schritt aus und meldet Ihnen in jeder Phase den Fortschritt. Darüber hinaus verwaltet der Agent das Kontextfenster selbst, ohne die Limits zu überschreiten. Dies eignet sich hervorragend für zeitaufwendige Aufgaben wie Performance-Optimierungen oder Modul-Refactoring, die mehrere Iterationsschleifen erfordern.",[881,12038,12039],{"id":10071},[495,12040,11941],{},[430,12042,12043,12044,12048],{},"Dieser Befehl löst den Skill ",[444,12045,10071],{"href":12046,"rel":12047},"https:\u002F\u002Fgithub.com\u002Fmattpocock\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fproductivity\u002Fgrill-me\u002FSKILL.md",[448]," aus, der von Matt Pocock entwickelt wurde. Er ist prägnant und äußerst effektiv. Die Idee dahinter ist, Sie aus verschiedenen Perspektiven zu befragen, Grenzfälle zu klären, die Strukturen abzustimmen und den Plan vor der Implementierung zu finalisieren.",[430,12050,12051],{},[441,12052,11774],{},[430,12054,12055],{},[433,12056],{"alt":12057,"src":12058},"Auslösen des Grill-me-Befehls für die Cloudflare-Architektur in Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-command-prompt.webp",[430,12060,12061],{},[433,12062],{"alt":12063,"src":12064},"Interaktive Fragerunde mit dem Grill-me-Skill","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-interaction-1.webp",[430,12066,12067],{},[433,12068],{"alt":12069,"src":12070},"Klärung von Grenzfällen und Strukturierung des Plans mit Grill-me","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-interaction-2.webp",[430,12072,12073],{},"Er unterstützt Mehrfachauswahl-Optionen:",[430,12075,12076],{},[433,12077],{"alt":12078,"src":12079},"Verwendung von Multi-Select-Funktionen während des Grill-me-Prozesses","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-multi-select-1.webp",[430,12081,12082],{},[433,12083],{"alt":12084,"src":12085},"Abschließen der Auswahl mit der Grill-me-Multi-Select-Funktion","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-grill-me-multi-select-2.webp",[430,12087,11766,12088,12090],{},[495,12089,11941],{}," ist wirklich beeindruckend. Er deckt fast alle Aspekte des Architekturdesigns für die Bereitstellung auf Cloudflare ab. Dadurch eignet er sich hervorragend für das Architekturdesign einer App, domänenübergreifendes Refactoring und andere potenziell komplexe Aufgaben.",[881,12092,12093],{"id":425},[495,12094,12095],{},"@\u002F ",[430,12097,12098],{},"Dieser Befehl wird nicht in der Liste der verfügbaren Befehle aufgeführt, ist jedoch manchmal für die Steuerung unseres Kontextfensters erforderlich. Er wird verwendet, um einen Ordner oder Dateien (außer Medien) zum Chat-Fenster hinzuzufügen.",[474,12100,12102],{"id":12101},"skills-fähigkeiten","Skills (Fähigkeiten)",[430,12104,12105,12106,12108,12109,552],{},"Wir können ",[495,12107,8418],{}," eingeben, um das Popup-Menü aufzurufen und einen Skill auszuwählen. Testen wir einmal ",[495,12110,10260],{},[430,12112,12113],{},[433,12114],{"alt":12115,"src":12116},"Auswahl des Excalidraw-Diagramm-Skills aus dem Antigravity-Popup-Fenster","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-skill-selection-excalidraw.webp",[430,12118,12119],{},[441,12120,11774],{},[430,12122,12123],{},[433,12124],{"alt":12125,"src":12126},"Bereitstellung von Anweisungen zur Erstellung eines Excalidraw-Diagramms","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-excalidraw-diagram-prompt.webp",[430,12128,12129],{},[433,12130],{"alt":12131,"src":12132},"Erfolgreiche Generierung eines Excalidraw-Architekturdiagramms","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-excalidraw-diagram-generation.webp",[430,12134,12135],{},[433,12136],{"alt":12137,"src":12138},"Antigravity architecture diagram","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-architecture.webp",[430,12140,12141],{},"Der Skill wurde nach einigen Runden von Berechtigungsbestätigungen erfolgreich ausgeführt.",[474,12143,12145],{"id":12144},"mcp-server","MCP-Server",[430,12147,12148],{},"Wenn der Agent ein Backend erstellt, müssen Sie normalerweise eine Webkonsole öffnen, eine Datenbank erstellen, API-Schlüssel kopieren und diese wieder einfügen. Durch die direkte Nutzung von MCP-Servern in Antigravity erhält der Agent praktisch die Möglichkeit, Ihre Cloud-Infrastruktur eigenständig zu steuern.",[430,12150,12151],{},[441,12152,11774],{},[430,12154,12155],{},[433,12156],{"alt":12157,"src":12158},"Anweisung an den MCP-Server, eine Firebase-Webanwendung zu erstellen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-mcp-server-firebase-prompt.webp",[430,12160,12161],{},[433,12162],{"alt":12163,"src":12164},"Antigravity nutzt MCP-Server zur Manipulation der Firebase-Infrastruktur","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-mcp-server-firebase-execution-1.webp",[430,12166,12167],{},[433,12168],{"alt":12169,"src":12170},"Erfolgreiche Erstellung einer Firebase-App über Antigravity MCP-Server","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-mcp-server-firebase-execution-2.webp",[430,12172,12173],{},"Der Agent konnte die Web-App erfolgreich in Firebase mithilfe von MCP-Servern erstellen. Werfen wir einen Blick auf das Repository.",[926,12175,12177],{"className":1035,"code":12176,"language":1037,"meta":425,"style":425},"Create a new public GitHub repository called ‘to-do-app-techvoyage’. Then push all the current project files to it with the commit message ‘Initial commit — to-do-app’.\n",[495,12178,12179],{"__ignoreMap":425},[934,12180,12181,12184,12187,12190,12193,12196,12199,12202,12205,12208,12211,12214,12217,12220,12223,12226,12229,12232,12235,12237,12240,12243,12246,12248,12251],{"class":936,"line":937},[934,12182,12183],{"class":1044},"Create",[934,12185,12186],{"class":1048}," a",[934,12188,12189],{"class":1048}," new",[934,12191,12192],{"class":1048}," public",[934,12194,12195],{"class":1048}," GitHub",[934,12197,12198],{"class":1048}," repository",[934,12200,12201],{"class":1048}," called",[934,12203,12204],{"class":1048}," ‘to-do-app-techvoyage’.",[934,12206,12207],{"class":1048}," Then",[934,12209,12210],{"class":1048}," push",[934,12212,12213],{"class":1048}," all",[934,12215,12216],{"class":1048}," the",[934,12218,12219],{"class":1048}," current",[934,12221,12222],{"class":1048}," project",[934,12224,12225],{"class":1048}," files",[934,12227,12228],{"class":1048}," to",[934,12230,12231],{"class":1048}," it",[934,12233,12234],{"class":1048}," with",[934,12236,12216],{"class":1048},[934,12238,12239],{"class":1048}," commit",[934,12241,12242],{"class":1048}," message",[934,12244,12245],{"class":1048}," ‘Initial",[934,12247,12239],{"class":1048},[934,12249,12250],{"class":1048}," —",[934,12252,12253],{"class":1048}," to-do-app’.\n",[430,12255,12256],{},[433,12257],{"alt":12258,"src":12259},"Agent pusht Projektdateien automatisch in ein neues GitHub-Repository","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002Fantigravity-github-repository-push.webp",[430,12261,12262,12263,12266,12267,461],{},"Das Repository ",[495,12264,12265],{},"to-do-app-techvoyage"," ist auf GitHub über diesen ",[444,12268,6906],{"href":12269,"rel":12270},"https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fto-do-app-techvoyage",[448],[474,12272,12274],{"id":12273},"abschließende-gedanken","Abschließende Gedanken",[430,12276,12277],{},"Obwohl MCP und Skills in Antigravity 2 – angetrieben von Gemini 3.5 Flash – eine atemberaubende Geschwindigkeit bieten, wird der agentenbasierte Workflow derzeit durch ständige Berechtigungsanfragen und fehlende Checkpoints für Rollbacks ausgebremst. Bis diese Checkpoint-Funktion eingeführt wird, sind regelmäßige Git-Commits Ihre unverzichtbare Lebensversicherung.",[1643,12279,12280],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":425,"searchDepth":1064,"depth":1071,"links":12282},[12283,12288,12289,12290],{"id":11980,"depth":1064,"text":11981,"children":12284},[12285,12286,12287],{"id":11984,"depth":1071,"text":11987},{"id":10071,"depth":1071,"text":11941},{"id":425,"depth":1071,"text":12095},{"id":12101,"depth":1064,"text":12102},{"id":12144,"depth":1064,"text":12145},{"id":12273,"depth":1064,"text":12274},[1663],"2026-06-06","Erfahren Sie mehr über Antigravity 2, eine agentenzentrierte Desktop-App. Lernen Sie, KI-Subagenten zu orchestrieren, Skills zu nutzen und MCP einzusetzen.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FWhat%20can%20we%20do%20with%20Antigravity%202\u002FDE-What-can-we-do-with-Antigravity-2.webp","Antigravity 2 Tutorial: KI-Agenten, Skills & MCP-Server",{"schemaOrg":12297,"robots":1697,"sitemap":12299},[12298],{"@type":1674,"headline":11945,"description":12293},{"lastmod":12292},{"title":12295,"description":12293,"ogTitle":11945,"ogDescription":12293,"twitterTitle":11945,"twitterDescription":12293},"de\u002Farticle\u002Fwhat-can-we-do-with-antigravity-2",[],"KJvaeFYqAZUDbXXp_nW2xkeVSZc_aJTi82_7ybNE5vE",{"id":12305,"title":11977,"author":1706,"body":12306,"category":12985,"date":12986,"description":12987,"extension":1668,"image":12988,"imageAlt":12989,"isPublished":1067,"meta":12990,"minRead":1078,"navigation":1067,"path":21,"seo":12994,"stem":12995,"tags":12996,"updatedAt":1706,"__hash__":12997},"article\u002Fde\u002Farticle\u002Fsetup-antigravity-2.md",{"type":427,"value":12307,"toc":12974},[12308,12318,12320,12323,12334,12337,12341,12350,12356,12363,12369,12376,12386,12388,12392,12399,12405,12408,12414,12418,12421,12434,12448,12455,12467,12477,12491,12493,12497,12500,12513,12516,12821,12830,12836,12847,12853,12859,12865,12867,12871,12881,12893,12899,12905,12911,12928,12931,12937,12939,12943,12946,12952,12955,12961,12963,12965,12968,12971],[430,12309,12310,12311,12314,12315,12317],{},"Auf der Google I\u002FO 2026 hat Google mit ",[441,12312,12313],{},"Antigravity 2"," eine eigenständige Desktop-Anwendung vorgestellt, die den ",[441,12316,1705],{}," als primäre Benutzeroberfläche etabliert. Sie beschreiben einfach, was Sie erreichen möchten, und der Agent erstellt daraufhin einen Plan, unterteilt diesen in überschaubare Teilaufgaben und führt diese selbstständig aus.",[881,12319,1759],{"id":1758},[430,12321,12322],{},"Bevor wir beginnen, benötigen Sie:",[485,12324,12325,12328,12331],{},[488,12326,12327],{},"Einen Computer (in dieser Anleitung wird macOS verwendet)",[488,12329,12330],{},"Einen modernen Webbrowser",[488,12332,12333],{},"Ein Gmail-Konto",[12335,12336],"hr",{},[474,12338,12340],{"id":12339},"_1-antigravity-2-installieren","1. Antigravity 2 installieren",[430,12342,12343,12344,12349],{},"Laden Sie Antigravity 2 von ",[444,12345,12348],{"href":12346,"rel":12347},"https:\u002F\u002Fantigravity.google\u002Fdownload",[448],"antigravity.google"," herunter und installieren Sie die Anwendung auf Ihrem Computer. Beim ersten Start werden Sie aufgefordert, sich mit Ihrem Gmail-Konto anzumelden.",[430,12351,12352],{},[433,12353],{"alt":12354,"src":12355},"Google-Konto-Anmeldebildschirm beim ersten Start von Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-gmail-login.webp",[430,12357,12358,12359,12362],{},"Nach der Anmeldung sehen Sie ein ",[441,12360,12361],{},"Mikrofon-Symbol"," im Eingabefeld, mit dem Sie Sprachbefehle anstelle von Text eingeben können.",[430,12364,12365],{},[433,12366],{"alt":12367,"src":12368},"Sprachaufzeichnungstaste im Eingabefeld von Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-voice-input-field.webp",[430,12370,12371,12372,12375],{},"Antigravity 2 führt außerdem das Konzept von ",[441,12373,12374],{},"Projekten"," (Projects) ein. Ein Projekt kann mehrere lokale Ordner umfassen und arbeitet mit eigenen, spezifischen Agenten-Einstellungen und Berechtigungen.",[430,12377,12378,12382],{},[433,12379],{"alt":12380,"src":12381},"Projektauswahl- und Konfigurationsmenü in Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-project-menu.webp",[433,12383],{"alt":12384,"src":12385},"Erstellung eines neuen KI-Projekts mit Ordnerpfad in Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-project-creation.webp",[12335,12387],{},[474,12389,12391],{"id":12390},"_2-mcp-und-plugins-einrichten","2. MCP und Plugins einrichten",[430,12393,12394,12395,12398],{},"Sämtliche Model Context Protocol (MCP) Server, Plugins und Skills werden im Einstellungsmenü unter dem Punkt ",[441,12396,12397],{},"Customizations"," (Anpassungen) verwaltet:",[430,12400,12401],{},[433,12402],{"alt":12403,"src":12404},"Anpassungs-Tab in den Einstellungen zur Verwaltung von MCP-Servern","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-settings-customizations.webp",[430,12406,12407],{},"Derzeit sind nur Plugins von Google verfügbar, aber es ist zu hoffen, dass in Zukunft weitere veröffentlicht werden.",[430,12409,12410],{},[433,12411],{"alt":12412,"src":12413},"Liste der offiziellen Google-Plugins und Integrationen in Antigravity 2","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-google-plugins-list.webp",[2162,12415,12417],{"id":12416},"einen-verfügbaren-mcp-server-hinzufügen","Einen verfügbaren MCP-Server hinzufügen",[430,12419,12420],{},"So installieren Sie einen vorkonfigurierten MCP-Server (z. B. GitHub):",[533,12422,12423,12428],{},[488,12424,4273,12425,552],{},[441,12426,12427],{},"Add MCP+",[488,12429,12430,12431,4270],{},"Wählen Sie den ",[441,12432,12433],{},"GitHub MCP Server",[430,12435,12436,12440,12444],{},[433,12437],{"alt":12438,"src":12439},"Hinzufügen eines vorkonfigurierten MCP-Servers über die Schaltfläche Add MCP plus","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-add-mcp-button.webp",[433,12441],{"alt":12442,"src":12443},"Auswahl des GitHub-MCP-Servers aus der Liste der verfügbaren Integrationen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-select-github-mcp.webp",[433,12445],{"alt":12446,"src":12447},"Einrichtungsassistent für die Autorisierung des GitHub-MCP-Servers","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-github-mcp-setup.webp",[430,12449,12450,12451],{},"Die Einrichtung des GitHub-MCP-Servers brach mit einem Fehler ab:\n",[433,12452],{"alt":12453,"src":12454},"Konfigurationsfehler während des Installationsprozesses des GitHub-MCP-Servers","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-github-mcp-error.webp",[430,12456,12457,12458,12460,12461,12463,12464,12466],{},"Da auf unserem macOS-System bereits ",[495,12459,2796],{}," installiert ist, können wir dies umgehen, indem wir den ",[495,12462,2796],{},"-Befehl direkt im Chat ausführen. Zuvor müssen wir jedoch den ",[495,12465,2796],{},"-Befehl explizit in den Berechtigungen von Antigravity freigeben.",[430,12468,12469,12473],{},[433,12470],{"alt":12471,"src":12472},"Anforderungsdialog zum Hinzufügen des git-Befehls zu den Berechtigungen","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-add-git-permission-1.webp",[433,12474],{"alt":12475,"src":12476},"Erteilung der git-Ausführungsberechtigung im Einstellungsmenü","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-add-git-permission-2.webp",[430,12478,12479,12480,12482,12483,12487],{},"Testen wir den Prompt, um zu sehen, ob der ",[495,12481,2796],{},"-Befehl nun funktioniert:\n",[433,12484],{"alt":12485,"src":12486},"Absenden einer git status-Anfrage im Prompt-Feld des KI-Agenten","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-git-command-test-1.webp",[433,12488],{"alt":12489,"src":12490},"Erfolgreiche Ausführung des Befehls git status direkt im Chat","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-git-command-test-2.webp",[12335,12492],{},[474,12494,12496],{"id":12495},"_3-benutzerdefinierte-mcp-server-hinzufügen","3. Benutzerdefinierte MCP-Server hinzufügen",[430,12498,12499],{},"Falls der gewünschte MCP-Server nicht in der Standardliste aufgeführt ist, können Sie ihn manuell hinzufügen, indem Sie die MCP-Konfigurationsdatei direkt bearbeiten. Die Konfiguration befindet sich unter:",[926,12501,12503],{"className":1035,"code":12502,"language":1037,"meta":425,"style":425},"~\u002F.gemini\u002Fconfig\u002Fmcp_config.json\n",[495,12504,12505],{"__ignoreMap":425},[934,12506,12507,12510],{"class":936,"line":937},[934,12508,12509],{"class":948},"~",[934,12511,12512],{"class":944},"\u002F.gemini\u002Fconfig\u002Fmcp_config.json\n",[430,12514,12515],{},"Fügen wir als Beispiel einige Cloudflare-MCP-Server hinzu. Da Cloudflare die dynamische Client-Registrierung unterstützt, müssen wir lediglich OAuth aktivieren. Fügen Sie Ihrer JSON-Konfiguration Folgendes hinzu:",[926,12517,12519],{"className":2910,"code":12518,"language":2912,"meta":425,"style":425},"    \"cloudflare-api\": {\n      \"serverUrl\": \"https:\u002F\u002Fmcp.cloudflare.com\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    },\n    \"cloudflare-docs\": {\n      \"serverUrl\": \"https:\u002F\u002Fdocs.mcp.cloudflare.com\u002Fmcp\"\n    },\n    \"cloudflare-bindings\": {\n      \"serverUrl\": \"https:\u002F\u002Fbindings.mcp.cloudflare.com\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    },\n    \"cloudflare-builds\": {\n      \"serverUrl\": \"https:\u002F\u002Fbuilds.mcp.cloudflare.com\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    },\n    \"cloudflare-observability\": {\n      \"serverUrl\": \"https:\u002F\u002Fobservability.mcp.cloudflare.com\u002Fmcp\",\n      \"oauth\": {\n        \"enabled\": true\n      }\n    }\n",[495,12520,12521,12534,12554,12566,12578,12582,12589,12602,12619,12625,12638,12657,12669,12681,12685,12691,12704,12723,12735,12747,12751,12757,12770,12789,12801,12813,12817],{"__ignoreMap":425},[934,12522,12523,12525,12528,12530,12532],{"class":936,"line":937},[934,12524,7626],{"class":948},[934,12526,12527],{"class":1048},"cloudflare-api",[934,12529,3704],{"class":948},[934,12531,580],{"class":944},[934,12533,2919],{"class":948},[934,12535,12536,12538,12541,12543,12545,12547,12550,12552],{"class":936,"line":1064},[934,12537,7639],{"class":948},[934,12539,12540],{"class":940},"serverUrl",[934,12542,3704],{"class":948},[934,12544,891],{"class":948},[934,12546,3292],{"class":948},[934,12548,12549],{"class":1048},"https:\u002F\u002Fmcp.cloudflare.com\u002Fmcp",[934,12551,3704],{"class":948},[934,12553,7656],{"class":948},[934,12555,12556,12558,12560,12562,12564],{"class":936,"line":1071},[934,12557,7639],{"class":948},[934,12559,7886],{"class":940},[934,12561,3704],{"class":948},[934,12563,891],{"class":948},[934,12565,2949],{"class":948},[934,12567,12568,12570,12572,12574,12576],{"class":936,"line":1078},[934,12569,7675],{"class":948},[934,12571,7899],{"class":1044},[934,12573,3704],{"class":948},[934,12575,891],{"class":948},[934,12577,1383],{"class":948},[934,12579,12580],{"class":936,"line":1927},[934,12581,7910],{"class":948},[934,12583,12584,12587],{"class":936,"line":1932},[934,12585,12586],{"class":948},"    }",[934,12588,7656],{"class":944},[934,12590,12591,12593,12596,12598,12600],{"class":936,"line":1938},[934,12592,7626],{"class":948},[934,12594,12595],{"class":1048},"cloudflare-docs",[934,12597,3704],{"class":948},[934,12599,580],{"class":944},[934,12601,2919],{"class":948},[934,12603,12604,12606,12608,12610,12612,12614,12617],{"class":936,"line":2275},[934,12605,7639],{"class":948},[934,12607,12540],{"class":940},[934,12609,3704],{"class":948},[934,12611,891],{"class":948},[934,12613,3292],{"class":948},[934,12615,12616],{"class":1048},"https:\u002F\u002Fdocs.mcp.cloudflare.com\u002Fmcp",[934,12618,1959],{"class":948},[934,12620,12621,12623],{"class":936,"line":2286},[934,12622,12586],{"class":948},[934,12624,7656],{"class":944},[934,12626,12627,12629,12632,12634,12636],{"class":936,"line":1699},[934,12628,7626],{"class":948},[934,12630,12631],{"class":1048},"cloudflare-bindings",[934,12633,3704],{"class":948},[934,12635,580],{"class":944},[934,12637,2919],{"class":948},[934,12639,12640,12642,12644,12646,12648,12650,12653,12655],{"class":936,"line":2387},[934,12641,7639],{"class":948},[934,12643,12540],{"class":940},[934,12645,3704],{"class":948},[934,12647,891],{"class":948},[934,12649,3292],{"class":948},[934,12651,12652],{"class":1048},"https:\u002F\u002Fbindings.mcp.cloudflare.com\u002Fmcp",[934,12654,3704],{"class":948},[934,12656,7656],{"class":948},[934,12658,12659,12661,12663,12665,12667],{"class":936,"line":2393},[934,12660,7639],{"class":948},[934,12662,7886],{"class":940},[934,12664,3704],{"class":948},[934,12666,891],{"class":948},[934,12668,2949],{"class":948},[934,12670,12671,12673,12675,12677,12679],{"class":936,"line":2398},[934,12672,7675],{"class":948},[934,12674,7899],{"class":1044},[934,12676,3704],{"class":948},[934,12678,891],{"class":948},[934,12680,1383],{"class":948},[934,12682,12683],{"class":936,"line":2404},[934,12684,7910],{"class":948},[934,12686,12687,12689],{"class":936,"line":3361},[934,12688,12586],{"class":948},[934,12690,7656],{"class":944},[934,12692,12693,12695,12698,12700,12702],{"class":936,"line":3372},[934,12694,7626],{"class":948},[934,12696,12697],{"class":1048},"cloudflare-builds",[934,12699,3704],{"class":948},[934,12701,580],{"class":944},[934,12703,2919],{"class":948},[934,12705,12706,12708,12710,12712,12714,12716,12719,12721],{"class":936,"line":3377},[934,12707,7639],{"class":948},[934,12709,12540],{"class":940},[934,12711,3704],{"class":948},[934,12713,891],{"class":948},[934,12715,3292],{"class":948},[934,12717,12718],{"class":1048},"https:\u002F\u002Fbuilds.mcp.cloudflare.com\u002Fmcp",[934,12720,3704],{"class":948},[934,12722,7656],{"class":948},[934,12724,12725,12727,12729,12731,12733],{"class":936,"line":3385},[934,12726,7639],{"class":948},[934,12728,7886],{"class":940},[934,12730,3704],{"class":948},[934,12732,891],{"class":948},[934,12734,2949],{"class":948},[934,12736,12737,12739,12741,12743,12745],{"class":936,"line":3917},[934,12738,7675],{"class":948},[934,12740,7899],{"class":1044},[934,12742,3704],{"class":948},[934,12744,891],{"class":948},[934,12746,1383],{"class":948},[934,12748,12749],{"class":936,"line":3923},[934,12750,7910],{"class":948},[934,12752,12753,12755],{"class":936,"line":3932},[934,12754,12586],{"class":948},[934,12756,7656],{"class":944},[934,12758,12759,12761,12764,12766,12768],{"class":936,"line":4584},[934,12760,7626],{"class":948},[934,12762,12763],{"class":1048},"cloudflare-observability",[934,12765,3704],{"class":948},[934,12767,580],{"class":944},[934,12769,2919],{"class":948},[934,12771,12772,12774,12776,12778,12780,12782,12785,12787],{"class":936,"line":5039},[934,12773,7639],{"class":948},[934,12775,12540],{"class":940},[934,12777,3704],{"class":948},[934,12779,891],{"class":948},[934,12781,3292],{"class":948},[934,12783,12784],{"class":1048},"https:\u002F\u002Fobservability.mcp.cloudflare.com\u002Fmcp",[934,12786,3704],{"class":948},[934,12788,7656],{"class":948},[934,12790,12791,12793,12795,12797,12799],{"class":936,"line":5048},[934,12792,7639],{"class":948},[934,12794,7886],{"class":940},[934,12796,3704],{"class":948},[934,12798,891],{"class":948},[934,12800,2949],{"class":948},[934,12802,12803,12805,12807,12809,12811],{"class":936,"line":5056},[934,12804,7675],{"class":948},[934,12806,7899],{"class":1044},[934,12808,3704],{"class":948},[934,12810,891],{"class":948},[934,12812,1383],{"class":948},[934,12814,12815],{"class":936,"line":5064},[934,12816,7910],{"class":948},[934,12818,12819],{"class":936,"line":5069},[934,12820,7759],{"class":948},[430,12822,12823,12824,9962,12826,12829],{},"Wechseln Sie in der App zurück in den Bereich ",[441,12825,12397],{},[441,12827,12828],{},"Refresh"," (Aktualisieren). Die Cloudflare-MCP-Server werden nun als „ausstehende Autorisierung“ (pending authorisation) aufgelistet.",[430,12831,12832],{},[433,12833],{"alt":12834,"src":12835},"Gelistete Cloudflare-MCP-Server im Anpassungsmenü, die auf Autorisierung warten","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-cloudflare-mcp-pending.webp",[430,12837,12838,12839,12842,12843,12846],{},"Klicken Sie neben dem MCP-Server auf ",[441,12840,12841],{},"Authenticate",". Dadurch öffnet sich eine Authentifizierungsseite im Browser. Nach der erfolgreichen Anmeldung wird ein Autorisierungscode (",[441,12844,12845],{},"auth code",") generiert.",[430,12848,12849],{},[433,12850],{"alt":12851,"src":12852},"Webbrowser mit Anzeige des dynamischen OAuth-Autorisierungscodes","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-cloudflare-auth-code.webp",[430,12854,12855,12856,552],{},"Kopieren Sie diesen Code, fügen Sie ihn in das Eingabefeld in Antigravity ein und klicken Sie auf ",[441,12857,12858],{},"Submit",[430,12860,12861],{},[433,12862],{"alt":12863,"src":12864},"Absenden des OAuth-Verifizierungscodes in der Antigravity-Einrichtung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-cloudflare-auth-submit.webp",[12335,12866],{},[474,12868,12870],{"id":12869},"_4-benutzerdefinierte-skills-hinzufügen","4. Benutzerdefinierte Skills hinzufügen",[430,12872,12873,12874,12876,12877,12880],{},"Derzeit können benutzerdefinierte Skills ",[441,12875,681],{}," direkt über die Benutzeroberfläche der Desktop-App hinzugefügt werden. Stattdessen müssen sie direkt im Ordner ",[495,12878,12879],{},"~\u002F.gemini\u002Fconfig\u002Fskills"," abgelegt werden.",[430,12882,12883,12884,12887,12888],{},"Da wir die CLI von ",[495,12885,12886],{},"npx skills"," nutzen, um alle Agenten-Skills zentral zu verwalten, steht jeder neu hinzugefügte Skill automatisch allen Agenten zur Verfügung – einschließlich Antigravity. ",[901,12889,12890,12891,10346],{},"(Mehr Details dazu finden Sie in unserem Artikel: ",[444,12892,8680],{"href":359},[430,12894,12895,12896,12898],{},"Wenn man anfangs ",[495,12897,8418],{}," in das Chatfenster eingibt, ist die Skill-Liste noch leer:",[430,12900,12901],{},[433,12902],{"alt":12903,"src":12904},"Befehlsfeld mit leerer Skill-Liste bei Eingabe des Slash-Shortcuts","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-empty-skills-list.webp",[430,12906,12907,12908,12910],{},"Es scheint, als ob Antigravity 2 den globalen Skills-Ordner (",[495,12909,8665],{},") nicht automatisch ausliest. Um das zu beheben, erstellen wir einfach einen symbolischen Link (Symlink) auf das Konfigurationsverzeichnis von Antigravity:",[926,12912,12914],{"className":1035,"code":12913,"language":1037,"meta":425,"style":425},"ln -s ~\u002F.agents\u002Fskills\u002Fexcalidraw-diagram ~\u002F.gemini\u002Fconfig\u002Fskills\u002Fexcalidraw-diagram\n",[495,12915,12916],{"__ignoreMap":425},[934,12917,12918,12920,12922,12925],{"class":936,"line":937},[934,12919,3690],{"class":1044},[934,12921,3545],{"class":1048},[934,12923,12924],{"class":1048}," ~\u002F.agents\u002Fskills\u002Fexcalidraw-diagram",[934,12926,12927],{"class":1048}," ~\u002F.gemini\u002Fconfig\u002Fskills\u002Fexcalidraw-diagram\n",[430,12929,12930],{},"Sobald die Verknüpfung erstellt ist, steht der Skill in der Anwendung bereit!",[430,12932,12933],{},[433,12934],{"alt":12935,"src":12936},"Excalidraw-Diagramm-Skill erfolgreich in der Befehlsliste angezeigt","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-excalidraw-skill-available.webp",[12335,12938],{},[474,12940,12942],{"id":12941},"_5-einfache-aufgabe-testen","5. Einfache Aufgabe testen",[430,12944,12945],{},"Da nun alles konfiguriert ist, führen wir einen Test durch.",[430,12947,12948],{},[433,12949],{"alt":12950,"src":12951},"Absenden einer Testaufgabe zur Auflistung von D1-Datenbanken","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-test-simple-task-prompt.webp",[430,12953,12954],{},"Wie unten zu sehen ist, erkennt und nutzt das Modell den neu hinzugefügten Cloudflare-MCP-Server erfolgreich, um die Anfrage zu bearbeiten.",[430,12956,12957],{},[433,12958],{"alt":12959,"src":12960},"KI-Agent listet D1-Datenbanken erfolgreich über Cloudflare-MCP aufeinander auf","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002Fantigravity-test-task-success.webp",[12335,12962],{},[474,12964,2575],{"id":2574},[430,12966,12967],{},"Antigravity 2 markiert einen bedeutenden Wandel von der klassischen IDE hin zu einer leicht zugänglichen Desktop-Anwendung, die es ganz normalen Anwendern ermöglicht, als Dirigent für unterschiedlichste Aufgaben zu agieren.",[430,12969,12970],{},"Dennoch benötigt Antigravity 2 noch etwas Feinschliff. Wenn Funktionen fehlschlagen, gestaltet sich die Fehlersuche aufgrund ungenauer Fehlermeldungen oft frustrender. Zudem wirkt die offizielle Dokumentation noch unfertig – vermutlich wurde sie KI-generiert, da einige Verweise und Dateipfade derzeit schlicht fehlerhaft sind.",[1643,12972,12973],{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":425,"searchDepth":1064,"depth":1071,"links":12975},[12976,12977,12978,12981,12982,12983,12984],{"id":1758,"depth":1071,"text":1759},{"id":12339,"depth":1064,"text":12340},{"id":12390,"depth":1064,"text":12391,"children":12979},[12980],{"id":12416,"depth":1078,"text":12417},{"id":12495,"depth":1064,"text":12496},{"id":12869,"depth":1064,"text":12870},{"id":12941,"depth":1064,"text":12942},{"id":2574,"depth":1064,"text":2575},[1663],"2026-06-05","Entdecken Sie die Neuerungen in Google Antigravity 2. Lesen Sie unsere Praxisanleitung zur Installation der App, zum Testen von KI-Agenten-Tasks und zum manuellen Hinzufügen eigener MCP-Server.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FSetup%20Antigravity%202.0\u002FDE-Setup-Antigravity-2.0.webp","Google Antigravity 2 Test & Einrichtung: KI-Agenten, MCPs & Plugins",{"schemaOrg":12991,"robots":1697,"sitemap":12993},[12992],{"@type":1674,"headline":12989,"description":12987},{"lastmod":12986},{"title":12989,"description":12987,"ogTitle":11977,"ogDescription":12987,"twitterTitle":11977,"twitterDescription":12987},"de\u002Farticle\u002Fsetup-antigravity-2",[],"BzExdgbY20ElnZx7AXsd7WV8_U-SxpID4curIpn1N70",{"id":12999,"title":8680,"author":1706,"body":13000,"category":13415,"date":13416,"description":13417,"extension":1668,"image":13418,"imageAlt":13419,"isPublished":1067,"meta":13420,"minRead":1078,"navigation":1067,"path":9,"seo":13426,"stem":13427,"tags":13428,"updatedAt":1706,"__hash__":13429},"article\u002Fde\u002Farticle\u002Fcentralised-the-skills-for-agents.md",{"type":427,"value":13001,"toc":13405},[13002,13013,13016,13039,13053,13057,13067,13082,13092,13098,13101,13123,13129,13140,13158,13168,13178,13182,13189,13210,13213,13219,13229,13236,13239,13259,13267,13271,13277,13349,13356,13360,13396,13402],[430,13003,13004,13005,13008,13009,13012],{},"Wenn Sie mehrere KI-Agenten oder Kommandozeilenwerkzeuge (CLIs) auf Ihrem Computer ausführen — sei es Hermes, Claude Code, Codex, Antigravity, Kimi oder andere unterstützte Tools —, sind Sie wahrscheinlich schon auf ein frustrierendes Problem gestoßen: ",[441,13006,13007],{},"Skill-Fragmentierung",". Jeder Agent und jede CLI verwaltet einen eigenen, separaten ",[495,13010,13011],{},"skills","-Ordner. Dies führt zu doppelten Installationen, abweichenden Versionen (Version Drift) und hohem Verwaltungsaufwand.",[430,13014,13015],{},"Bei unserer Arbeit mit KI-Agenten traten häufig folgende Probleme auf:",[485,13017,13018,13024,13030],{},[488,13019,13020,13023],{},[441,13021,13022],{},"Mehrfache Installationen",": Man installiert einen neuen Skill für einen Agenten und muss ihn dann für jeden weiteren Agenten mühsam erneut installieren.",[488,13025,13026,13029],{},[441,13027,13028],{},"Abweichende Versionen"," (Version Drift): Man passt einen Skill für einen Agenten an oder behebt einen Fehler, vergisst jedoch, die anderen zu aktualisieren — am Ende verhalten sich die Agenten unterschiedlich.",[488,13031,13032,13035,13036,13038],{},[441,13033,13034],{},"Skill-Management",": Man muss jeden einzelnen ",[495,13037,13011],{},"-Ordner aller Agenten im System durchsuchen, um überhaupt zu sehen, welche Skills installiert sind.",[430,13040,3560,13041,13043,13044,13046,13047,1786],{},[495,13042,12886],{}," CLI, ein Open-Source-Tool von Vercel, löst dieses Problem: Sie verwalten nur noch einen einzigen, zentralisierten ",[495,13045,13011],{},"-Ordner, den Sie mit all Ihren Agenten teilen. Schauen Sie sich dazu gerne das ",[444,13048,13050,13052],{"href":8626,"rel":13049},[448],[495,13051,12886],{}," GitHub-Repository",[474,13054,13056],{"id":13055},"zentralisierter-ordner","Zentralisierter Ordner",[430,13058,13059,13060,13062,13063,13066],{},"Das Konzept ist denkbar einfach: Wenn wir den ",[495,13061,13011],{},"-Ordner jedes Agenten auf ",[441,13064,13065],{},"denselben physischen Ordner"," verweisen lassen, verschwindet das Fragmentierungsproblem vollständig.",[430,13068,13069,13070,13072,13073,13075,13076,13078,13079,13081],{},"Wenn Sie einen Skill mit der ",[495,13071,12886],{}," CLI installieren, wird dieser in den zentralen Ordner auf Ihrem Rechner heruntergeladen (",[495,13074,8665],{},"). Die CLI erstellt anschließend einen ",[441,13077,8661],{}," (einen symbolischen Link bzw. Zeiger) vom ",[495,13080,13011],{},"-Ordner des jeweiligen Agenten zurück zu diesem zentralen Ordner.",[430,13083,13084,13085,13088,13089,13091],{},"Wenn beispielsweise Claude Code unter ",[495,13086,13087],{},"~\u002F.claude\u002Fskills\u002F"," nach Skills sucht, wird es transparent zu ",[495,13090,8665],{}," umgeleitet. Ändern Sie einen Skill in diesem zentralen Ordner, sieht jeder einzelne Agent diese Aktualisierung sofort. Kein manuelles Kopieren, keine Synchronisationsskripte und kein verschwendeter Speicherplatz.",[474,13093,13095,13097],{"id":13094},"npx-skills-installieren-und-einen-skill-hinzufügen",[495,13096,12886],{}," installieren und einen Skill hinzufügen",[430,13099,13100],{},"Führen Sie den folgenden Befehl aus, um loszulegen und unseren ersten Skill hinzuzufügen:",[926,13102,13104],{"className":1035,"code":13103,"language":1037,"meta":425,"style":425},"npx skills add https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill --skill excalidraw-diagram\n",[495,13105,13106],{"__ignoreMap":425},[934,13107,13108,13110,13112,13114,13117,13120],{"class":936,"line":937},[934,13109,7651],{"class":1044},[934,13111,8640],{"class":1048},[934,13113,1058],{"class":1048},[934,13115,13116],{"class":1048}," https:\u002F\u002Fgithub.com\u002Fcoleam00\u002Fexcalidraw-diagram-skill",[934,13118,13119],{"class":1048}," --skill",[934,13121,13122],{"class":1048}," excalidraw-diagram\n",[430,13124,13125],{},[433,13126],{"alt":13127,"src":13128},"Verwendung des npx skills add Befehls zur Skill-Installation von GitHub","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-add-command.webp",[430,13130,13131,13132,13135,13136],{},"Die CLI fragt Sie, ob Sie dies für ein bestimmtes Projekt oder global einrichten möchten. Wir empfehlen in der Regel ",[441,13133,13134],{},"global",", damit alle unterstützten Agenten darauf zugreifen können:\n",[433,13137],{"alt":13138,"src":13139},"Auswahl der globalen Installationsoption in der npx skills CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-install-global-prompt.webp",[430,13141,13142,13143,13145,13146,13149,13150,13154],{},"Wählen Sie im nächsten Schritt unbedingt ",[495,13144,8661],{},", um eine ",[441,13147,13148],{},"Single Source of Truth"," (eine einzige Quelle der Wahrheit) zu garantieren:\n",[433,13151],{"alt":13152,"src":13153},"Auswahl der Symlink-Methode zur Skill-Synchronisierung","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-symlink-option.webp",[433,13155],{"alt":13156,"src":13157},"Bestätigung der erfolgreichen Installation und Symlink-Erstellung in der CLI","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-installation-completed.webp",[430,13159,13160,13161,13163,13164],{},"Sobald dies abgeschlossen ist, können wir überprüfen, ob der Skill im zentralen Ordner unter ",[495,13162,8665],{}," installiert ist:\n",[433,13165],{"alt":13166,"src":13167},"Überprüfung der installierten Skills im zentralen Verzeichnis","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fnpx-skills-directory-verification.webp",[430,13169,13170,13171,13173,13174],{},"Öffnen Sie nun die Kimi CLI (oder einen anderen Agenten) — der ",[495,13172,10260],{},"-Skill steht sofort bereit!\n",[433,13175],{"alt":13176,"src":13177},"Kimi CLI zeigt geladene und einsatzbereite zentrale Skills","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fkimi-cli-skills-integration.webp",[474,13179,13181],{"id":13180},"einen-skill-von-grund-auf-neu-erstellen","Einen Skill von Grund auf neu erstellen",[430,13183,13184,13185,13188],{},"Um eigene Skills zu erstellen, können Sie das Tool ",[495,13186,13187],{},"skill-creator"," von Anthropic verwenden. Installieren Sie es wie folgt:",[926,13190,13192],{"className":1035,"code":13191,"language":1037,"meta":425,"style":425},"npx skills add https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills --skill skill-creator\n",[495,13193,13194],{"__ignoreMap":425},[934,13195,13196,13198,13200,13202,13205,13207],{"class":936,"line":937},[934,13197,7651],{"class":1044},[934,13199,8640],{"class":1048},[934,13201,1058],{"class":1048},[934,13203,13204],{"class":1048}," https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills",[934,13206,13119],{"class":1048},[934,13208,13209],{"class":1048}," skill-creator\n",[430,13211,13212],{},"Geben Sie nun in Kimi oder einem anderen Agenten den folgenden Prompt ein:",[926,13214,13217],{"className":13215,"code":13216,"language":4654},[4652],"Use the skill-creator to help me build a skill for creating a product landing page\n",[495,13218,13216],{"__ignoreMap":425},[430,13220,13221,13222,13224,13225],{},"Kimi oder Ihr Agent erkennt den ",[495,13223,13187],{}," automatisch und führt Sie Schritt für Schritt durch den Prozess:\n",[433,13226],{"alt":13227,"src":13228},"Interaktiver skill-creator Assistent wird in der Kimi CLI ausgeführt","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002Fkimi-cli-skill-creator-setup.webp",[474,13230,13232,13233,13235],{"id":13231},"weitere-nützliche-npx-skills-befehle","Weitere nützliche ",[495,13234,12886],{},"-Befehle",[430,13237,13238],{},"Hier sind einige weitere praktische Befehle:",[485,13240,13241,13247,13253],{},[488,13242,13243,13246],{},[495,13244,13245],{},"npx skills ls -g",": Listet alle global installierten Skills auf",[488,13248,13249,13252],{},[495,13250,13251],{},"npx skills update",": Aktualisiert alle Skills mit einem einzigen Befehl",[488,13254,13255,13258],{},[495,13256,13257],{},"npx skills remove",": Deinstalliert\u002Fentfernt einen Skill interaktiv",[430,13260,13261,13262,552],{},"Weitere Befehle und Referenzen finden Sie im ",[444,13263,13265,13052],{"href":8626,"rel":13264},[448],[495,13266,12886],{},[474,13268,13270],{"id":13269},"einen-schritt-weitergehen","Einen Schritt weitergehen",[430,13272,13273,13274,13276],{},"Da sich nun alle Skills an einem zentralen Ort befinden (",[495,13275,8665],{},"), können wir diesen Ordner als Git-Repository initialisieren und auf GitHub oder GitLab hochladen.",[926,13278,13280],{"className":1035,"code":13279,"language":1037,"meta":425,"style":425},"cd ~\u002F.agents\u002Fskills\ngit init\ngit add .\ngit commit -m \"Initial skills folder\"\ngit remote add origin https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fskills\ngit push -u origin main\n",[495,13281,13282,13289,13296,13304,13320,13335],{"__ignoreMap":425},[934,13283,13284,13286],{"class":936,"line":937},[934,13285,2820],{"class":965},[934,13287,13288],{"class":1048}," ~\u002F.agents\u002Fskills\n",[934,13290,13291,13293],{"class":936,"line":1064},[934,13292,2796],{"class":1044},[934,13294,13295],{"class":1048}," init\n",[934,13297,13298,13300,13302],{"class":936,"line":1071},[934,13299,2796],{"class":1044},[934,13301,1058],{"class":1048},[934,13303,4912],{"class":1048},[934,13305,13306,13308,13310,13313,13315,13318],{"class":936,"line":1078},[934,13307,2796],{"class":1044},[934,13309,12239],{"class":1048},[934,13311,13312],{"class":1048}," -m",[934,13314,3292],{"class":948},[934,13316,13317],{"class":1048},"Initial skills folder",[934,13319,1959],{"class":948},[934,13321,13322,13324,13327,13329,13332],{"class":936,"line":1927},[934,13323,2796],{"class":1044},[934,13325,13326],{"class":1048}," remote",[934,13328,1058],{"class":1048},[934,13330,13331],{"class":1048}," origin",[934,13333,13334],{"class":1048}," https:\u002F\u002Fgithub.com\u002FTech-Voyage-Dev\u002Fskills\n",[934,13336,13337,13339,13341,13344,13346],{"class":936,"line":1932},[934,13338,2796],{"class":1044},[934,13340,12210],{"class":1048},[934,13342,13343],{"class":1048}," -u",[934,13345,13331],{"class":1048},[934,13347,13348],{"class":1048}," main\n",[430,13350,13351,13352,13355],{},"Dadurch erhalten wir eine lückenlose Historie aller Skill-Änderungen und können diese bei fehlerhaften Updates problemlos rückgängig machen. Zudem lassen sich die Skills über mehrere Rechner hinweg (z. B. Laptop und Desktop) ganz einfach mit einem schnellen ",[495,13353,13354],{},"git pull"," synchronisieren.",[474,13357,13359],{"id":13358},"einige-wichtige-hinweise-sicherheit-risiken","Einige wichtige Hinweise (Sicherheit & Risiken)",[485,13361,13362,13368,13374,13384,13390],{},[488,13363,13364,13367],{},[441,13365,13366],{},"Unterschiedliche Kompatibilität",": Noch unterstützen nicht alle Agenten-Plattformen jedes Feature (wie benutzerdefinierte Hooks oder bestimmte erlaubte Tools). Ein Skill kann bei einem Agenten hervorragend funktionieren, bei einem anderen jedoch fehlschlagen.",[488,13369,13370,13373],{},[441,13371,13372],{},"Vertrauenswürdige Quellen",": Installieren Sie Skills nur aus Quellen, denen Sie vertrauen.",[488,13375,13376,13379,13380,13383],{},[441,13377,13378],{},"Vor der Ausführung prüfen",": Wenn Sie einen benutzerdefinierten Skill oder den eines Drittanbieters nutzen, prüfen Sie die Dateien (insbesondere im Ordner ",[495,13381,13382],{},"scripts\u002F","), bevor Sie Ihren Agenten darauf zugreifen lassen.",[488,13385,13386,13389],{},[441,13387,13388],{},"Minimalprinzip",": Erteilen Sie einem Skill niemals mehr Werkzeug-Berechtigungen oder Systemzugriffe als unbedingt nötig.",[488,13391,13392,13395],{},[441,13393,13394],{},"Keine Secrets fest codieren",": Halten Sie API-Schlüssel und sensible Zugangsdaten unbedingt aus Ihren Skill-Dateien fern.",[430,13397,13398,13399,13401],{},"Die Einrichtung einer zentralen „Single Source of Truth“ mit ",[495,13400,12886],{}," hat unserem Team viel Frust und doppelte Arbeit erspart. Probieren Sie es unbedingt aus — die Fähigkeiten der KI skalieren mit Ihren Skills!",[1643,13403,13404],{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}",{"title":425,"searchDepth":1064,"depth":1071,"links":13406},[13407,13408,13410,13411,13413,13414],{"id":13055,"depth":1064,"text":13056},{"id":13094,"depth":1064,"text":13409},"npx skills installieren und einen Skill hinzufügen",{"id":13180,"depth":1064,"text":13181},{"id":13231,"depth":1064,"text":13412},"Weitere nützliche npx skills-Befehle",{"id":13269,"depth":1064,"text":13270},{"id":13358,"depth":1064,"text":13359},[1663],"2026-06-04","Nutzen Sie mehrere KI-Agenten wie Claude Code oder Kimi? Erfahren Sie, wie Sie Skill-Fragmentierung beheben und einen zentralen Ordner via npx skills verwalten.","https:\u002F\u002Finimages.techvoyage.dev\u002Farticles\u002FCentralised%20the%20skills%20for%20agents\u002FFragmentierung-von-KI-Agenten-Skills-mit-npx-skills-l%C3%B6sen.webp","Zentralisierung von KI-Agenten-Skills mit der npx skills CLI",{"schemaOrg":13421,"robots":1697,"sitemap":13424},[13422],{"@type":1674,"headline":13423,"description":13417},"Wie man die Fragmentierung von KI-Agenten-Skills löst",{"lastmod":13425},"2026-06-03",{"title":13423,"description":13417,"ogTitle":8680,"ogDescription":13417,"twitterTitle":8680,"twitterDescription":13417},"de\u002Farticle\u002Fcentralised-the-skills-for-agents",[],"0LXiAO7gCXWjd_JWYIjwrT-vJn-lXljrBiVh9fcM9mQ",1792489974198]