{"id":5392,"date":"2025-12-20T17:30:57","date_gmt":"2025-12-20T08:30:57","guid":{"rendered":"https:\/\/secondlife.lol\/?p=5392"},"modified":"2025-12-30T23:02:37","modified_gmt":"2025-12-30T14:02:37","slug":"oh-my-opencode-setup-guide","status":"publish","type":"post","link":"https:\/\/secondlife.lol\/zh\/oh-my-opencode-setup-guide\/","title":{"rendered":"Oh My OpenCode \uc124\uce58 \uac00\uc774\ub4dc: \ucd08\uae09\uc790\ub3c4 \ud560 \uc218 \uc788\ub294 \uc124\uc815 \ubc29\ubc95"},"content":{"rendered":"<style>.kb-image5392_7d8fbb-db .kb-image-has-overlay:after{opacity:0.3;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;}.kb-image5392_7d8fbb-db img.kb-img, .kb-image5392_7d8fbb-db .kb-img img{border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}<\/style>\n<div class=\"wp-block-kadence-image kb-image5392_7d8fbb-db\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"412\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-12-600x412.jpg\" alt=\"Oh My OpenCode \uc124\uce58 \uac00\uc774\ub4dc\" class=\"kb-img wp-image-5627\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-12-600x412.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-12-300x206.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-12-768x527.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-12-18x12.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-12.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph translation-block\"><a href=\"https:\/\/secondlife.lol\/zh\/ai-ide-opencode-intro\/\" target=\"_self\">OpenCode<\/a>\ub97c \uc124\uce58\ud574\ubcf8 \ubd84\ub4e4\uc740 \u201c\uae30\ubcf8 \uae30\ub2a5\ub3c4 \uaf64 \uc88b\uc740\ub370, \uc0ac\ub78c\ub4e4\uc774 \ub9d0\ud558\ub294 \u2018\ub2e4\uc911 \uc5d0\uc774\uc804\ud2b8 \uac1c\ubc1c\ud658\uacbd\u2019\uc740 \uc5b4\ub5bb\uac8c \ub9cc\ub4dc\ub294 \uac70\uc9c0?\u201d\ub77c\ub294 \uad81\uae08\uc99d\uc774 \uc0dd\uae38 \uac81\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">\ubc14\ub85c \uadf8 \uc9c0\uc810\uc744 \ud574\uacb0\ud574\uc8fc\ub294 \ud655\uc7a5\ud329\uc774 <strong><a href=\"https:\/\/github.com\/code-yeongyu\/oh-my-opencode\" target=\"_blank\" rel=\"noopener\">Oh My OpenCode<\/a><\/strong>\uc785\ub2c8\ub2e4.<br>\ud558\uc9c0\ub9cc \ucd08\uae09 \uac1c\ubc1c\uc790\uc5d0\uac8c \uc774 \ud655\uc7a5\ud329\uc740 \uc870\uae08 \ub0af\uc124 \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc124\uc815 \ud30c\uc77c\uc740 \uc5b4\ub514\uc5d0 \ub450\ub294\uc9c0?<\/li>\n\n\n\n<li>\uc5b4\ub5a4 agent \ub4e4\uc774 \uae30\ubcf8 \uc81c\uacf5\ub418\ub294\uc9c0?<\/li>\n\n\n\n<li>JSON \ud15c\ud50c\ub9bf\uc740 \uc5b4\ub5bb\uac8c \uad6c\uc131\ud574\uc57c \ud558\ub294\uc9c0?<\/li>\n\n\n\n<li>\ubaa8\ub378\u00b7\ub3c4\uad6c\u00b7\uaddc\uce59\uc774 \uc5b4\ub5bb\uac8c \uc5f0\uacb0\ub418\ub294\uc9c0?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">\uc774\ubc88 \uae00\uc5d0\uc11c\ub294 \uc774 \ubaa8\ub4e0 \uace0\ubbfc\uc744 \ud574\uacb0\ud560 \uc218 \uc788\ub3c4\ub85d<br>\u201c\uc124\uce58 \u2192 \uc124\uc815\ud30c\uc77c \uc0dd\uc131 \u2192 \uc5d0\uc774\uc804\ud2b8 \uc5f0\uacb0 \u2192 \uaddc\uce59 \uc801\uc6a9\u201d\uc758 \uc804\uccb4 \uacfc\uc815\uc744 \uc2e4\uc81c \uc608\uc81c \uc911\uc2ec\uc73c\ub85c \ub9e4\uc6b0 \uc27d\uace0 \uc2e4\uc804\uc801\uc73c\ub85c \uc815\ub9ac\ud569\ub2c8\ub2e4.<\/p>\n\n\n<style>.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{padding-top:var(--global-kb-spacing-sm, 1.5rem);padding-right:var(--global-kb-spacing-sm, 1.5rem);padding-bottom:var(--global-kb-spacing-sm, 1.5rem);padding-left:var(--global-kb-spacing-sm, 1.5rem);border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{padding-top:0px;padding-right:0px;padding-bottom:0px;padding-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title-wrap{color:var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{color:var(--global-palette2, #2B6CB0);font-size:28px;font-weight:regular;font-style:normal;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list{color:var(--global-palette1, #3182CE);line-height:2em;font-weight:regular;font-style:normal;margin-top:var(--global-kb-spacing-sm, 1.5rem);margin-right:0px;margin-bottom:0px;margin-left:0px;}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap .kb-table-of-content-list .kb-table-of-contents__entry:hover{color:var(--global-palette6, #718096);}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}}@media all and (max-width: 1024px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}@media all and (max-width: 767px){.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-content-wrap{border-top:3px solid var(--global-palette2, #2B6CB0);border-right:3px solid var(--global-palette2, #2B6CB0);border-bottom:3px solid var(--global-palette2, #2B6CB0);border-left:3px solid var(--global-palette2, #2B6CB0);}.kb-table-of-content-nav.kb-table-of-content-id83_5f28a6-34 .kb-table-of-contents-title{font-size:28px;}}<\/style>\n\n\n<h2 class=\"wp-block-heading\">1. \uc124\uce58 \uc900\ube44: \uc5b4\ub5a4 \ubc29\uc2dd\uc73c\ub85c \uc124\uce58\ud560\uae4c?<\/h2>\n\n\n<style>.kb-image5392_d248fd-9f .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image5392_d248fd-9f\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"439\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-768x439.png\" alt=\"opencode plugins install oh-my-opencode image\" class=\"kb-img wp-image-5628\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-768x439.png 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-300x172.png 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-600x343.png 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-18x10.png 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15.png 1200w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">Oh My OpenCode\ub294 OpenCode \ud50c\ub7ec\uadf8\uc778 \ud615\ud0dc\ub85c \ub3d9\uc791\ud569\ub2c8\ub2e4.<br>\uc124\uce58\ub294 \uba85\ub839\uc5b4 \ud558\ub098\ub85c \ud574\uacb0\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>opencode plugins install oh-my-opencode<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uce58\uac00 \uc798 \ub418\uc5c8\ub294\uc9c0 \ud655\uc778\ud558\ub824\uba74<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>opencode plugins list<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">\uc5ec\uae30\uc5d0\uc11c \uc544\ub798\uc640 \uac19\uc774 <code>oh-my-opencode<\/code>\uac00 \ubcf4\uc774\uba74 \uc815\uc0c1\uc785\ub2c8\ub2e4.<\/p>\n\n\n<style>.kb-image5392_25a4b9-f7 .kb-image-has-overlay:after{opacity:0.3;}<\/style>\n<div class=\"wp-block-kadence-image kb-image5392_25a4b9-f7\"><figure class=\"aligncenter size-medium_large\"><img decoding=\"async\" width=\"768\" height=\"545\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-16-768x545.png\" alt=\"opencode plugins list image\" class=\"kb-img wp-image-5629\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-16-768x545.png 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-16-300x213.png 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-16-600x426.png 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-16-18x12.png 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-16.png 1200w\" sizes=\"(max-width: 768px) 100vw, 768px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">2. \uc124\uc815 \ud30c\uc77c\uc744 \uc5b4\ub514\uc5d0 \ub458\uae4c?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uc815\uc740 \ub450 \uc885\ub958\uac00 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 \ud504\ub85c\uc81d\ud2b8 \uc804\uc5ed \uc124\uc815<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>.yourproject\/\n  \u2514\u2500\u2500 .opencode\/\n         \u2514\u2500\u2500 oh-my-opencode.json<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ud504\ub85c\uc81d\ud2b8\ub9c8\ub2e4 \ub2e4\ub978 \uaddc\uce59\u00b7\uc5d0\uc774\uc804\ud2b8 \uad6c\uc131\uc744 \uc801\uc6a9\ud558\uace0 \uc2f6\uc744 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 \uc0ac\uc6a9\uc790 \uc804\uccb4(global) \uc124\uc815<\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>~\/.config\/opencode\/oh-my-opencode.json<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">\ubaa8\ub4e0 \ud504\ub85c\uc81d\ud2b8\uc5d0 \uacf5\ud1b5 \uc124\uc815\uc744 \uc801\uc6a9\ud558\uace0 \uc2f6\uc744 \ub54c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<br>\ucd08\uae09\uc790\ub294 <strong>global \uc124\uc815 \u2192 \ud504\ub85c\uc81d\ud2b8\ubcc4 override \ubc29\uc2dd<\/strong>\uc774 \uc720\uc9c0\ubcf4\uc218\ud558\uae30 \uc27d\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n<style>.kb-image5392_0d0981-78 .kb-image-has-overlay:after{opacity:0.3;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;}.kb-image5392_0d0981-78 img.kb-img, .kb-image5392_0d0981-78 .kb-img img{border-top-left-radius:5px;border-top-right-radius:5px;border-bottom-right-radius:5px;border-bottom-left-radius:5px;box-shadow:0px 0px 14px 0px rgba(0, 0, 0, 0.2);}<\/style>\n<div class=\"wp-block-kadence-image kb-image5392_0d0981-78\"><figure class=\"aligncenter size-large\"><img decoding=\"async\" width=\"600\" height=\"372\" src=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-17-2-600x372.jpg\" alt=\"Oh My OpenCode \uc124\uce58 \uac00\uc774\ub4dc image 2\" class=\"kb-img wp-image-5631\" srcset=\"https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-17-2-600x372.jpg 600w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-17-2-300x186.jpg 300w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-17-2-768x476.jpg 768w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-17-2-18x12.jpg 18w, https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-17-2.jpg 1200w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">3. \uae30\ubcf8 JSON \ud15c\ud50c\ub9bf<\/h2>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">\uc544\ub798 JSON\uc744 \uadf8\ub300\ub85c \ubcf5\uc0ac\ud574\uc11c<br><code>~\/.config\/opencode\/oh-my-opencode.json<\/code><br>\uc5d0 \ub123\uc73c\uba74 \uae30\ubcf8 \uae30\ub2a5\uc774 \ubc14\ub85c \uc791\ub3d9\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"$schema\": \"https:\/\/raw.githubusercontent.com\/code-yeongyu\/oh-my-opencode\/master\/assets\/oh-my-opencode.schema.json\",\n\n  \"agents\": {\n    \"oracle\": {\n      \"model\": \"openai\/gpt-5.2\",\n      \"instructions\": \"You act as an architect-level reviewer. Explain your reasoning clearly.\"\n    },\n    \"explore\": {\n      \"model\": \"xai\/grok-code\",\n      \"instructions\": \"Fast code search and browsing.\"\n    },\n    \"frontend\": {\n      \"model\": \"google\/gemini-3-pro-preview\",\n      \"instructions\": \"Help with UI\/UX and frontend code.\"\n    },\n    \"document\": {\n      \"model\": \"google\/gemini-3-pro-preview\",\n      \"instructions\": \"Write clear documentation for code and APIs.\"\n    }\n  },\n\n  \"rules\": {\n    \"enabled\": true\n  },\n\n  \"hooks\": {\n    \"keyword-detector\": true,\n    \"auto-compact\": true,\n    \"todo-enforcer\": true\n  }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \ud15c\ud50c\ub9bf\uc740 \ucd08\uae09\uc790\uac00 \ub2e4\ub8e8\uae30 \uc88b\uc740 \ub2e4\uc74c \ud2b9\uc131\uc744 \uac16\uace0 \uc788\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc5ed\ud560\uc774 \ubd84\uba85\ud55c 4\uac1c \uc5d0\uc774\uc804\ud2b8 \uad6c\uc131<\/li>\n\n\n\n<li>\uc790\ub3d9 \uaddc\uce59 \uc8fc\uc785 \ud65c\uc131\ud654<\/li>\n\n\n\n<li>\uc790\ub3d9 \uc694\uc57d(auto-compact), \uc791\uc5c5 \uc644\ub8cc \uc548\ub0b4(todo-enforce) \ud65c\uc131\ud654<\/li>\n\n\n\n<li>keyword detector\ub97c \ud1b5\ud574 \u201c\ub9ac\ud329\ud130\ub9c1\u201d, \u201c\uc815\ub9ac\ud574\uc918\u201d \uac19\uc740 \uc790\uc5f0\uc5b4 \ud45c\ud604 \ubc18\uc751<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">4. \uc5d0\uc774\uc804\ud2b8 \ucee4\uc2a4\ud140: \uc5ed\ud560\uc744 \ubc14\uafb8\uac70\ub098 \uc0c8\ub85c \ub9cc\ub4e4\uae30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">Oh My OpenCode\uc758 \uc9c4\uc9dc \ud798\uc740 \u201c\uc9c1\ubb34 \uae30\ubc18 \uc5d0\uc774\uc804\ud2b8\u201d\ub97c<br>\ub0b4 \ud504\ub85c\uc81d\ud2b8\uc5d0 \ub9de\uac8c \ub9cc\ub4e4 \uc218 \uc788\ub2e4\ub294 \uc810\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608: Django \ud504\ub85c\uc81d\ud2b8\uc6a9 \u201cModel Specialist\u201d \ucd94\uac00\ud558\uae30<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"agents\": {\n  \"model-specialist\": {\n    \"model\": \"anthropic\/claude-4-5-sonnet\",\n    \"instructions\": \"You focus on database models, migrations, and schema design. Suggest improvements and ensure consistency.\"\n  }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c TUI\uc5d0\uc11c \ub2e4\uc74c\ucc98\ub7fc \ud638\ucd9c\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@model-specialist \ubaa8\ub378 \uad6c\uc870 \ud55c\ubc88 \uac80\ud1a0\ud574\uc918.<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u63d0\u793a<\/h3>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">\ucd08\uae09\uc790\ub77c\uba74 agent 1~2\uac1c\ub9cc \ucd94\uac00\ud558\uace0,<br>\uc775\uc219\ud574\uc9c0\uba74 5~6\uac1c\uae4c\uc9c0 \ud655\uc7a5\ud558\ub294 \uac83\uc774 \uc88b\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">5. \uaddc\uce59(Rules) \uae30\ub2a5 \uc0ac\uc6a9\ubc95: \u201c\ud504\ub85c\uc81d\ud2b8\uc758 \uad00\uc810\u201d\uc744 AI\uc5d0\uac8c \uc2ec\uae30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">\uaddc\uce59\uc740 \uc77c\ubc18\uc801\uc778 <a href=\"https:\/\/secondlife.lol\/zh\/agentic-ai-cli-overview-claude-gemini-codex\/\" data-type=\"post\" data-id=\"5193\" target=\"_self\">terminal AI IDE<\/a> \uc640 \ub2ec\ub9ac<br><strong>\ud504\ub85c\uc81d\ud2b8\ubcc4 \ubb38\ub9e5\uacfc \uc6d0\uce59\uc744 AI\uc5d0\uac8c \uc790\ub3d9 \ud559\uc2b5\uc2dc\ud0a4\ub294 \uae30\ub2a5<\/strong>\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608: src\/auth \ub514\ub809\ud130\ub9ac\uc5d0\uc11c\ub9cc \uc801\uc6a9\ub418\ub294 \uaddc\uce59 \ucd94\uac00\ud558\uae30<br>\ud504\ub85c\uc81d\ud2b8 \ub0b4\ubd80\uc5d0 \ub2e4\uc74c \ud30c\uc77c \uc0dd\uc131<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>src\/auth\/AGENTS.md<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ub0b4\uc6a9 \uc608:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Authentication rules\n- Always handle tokens with secure patterns.\n- Never store raw passwords.\n- Follow the existing session management flow.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\uc81c auth \uad00\ub828 \ud30c\uc77c\uc744 \uc5f4\uba74 AI\ub294 \uc790\ub3d9\uc73c\ub85c \uc774 \uaddc\uce59\uc744 \ucc38\uace0\ud569\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">6. Hooks(\uc790\ub3d9\ud654 \uae30\ub2a5) \uc774\ud574\ud558\uae30<\/h2>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">hooks\ub294 <a href=\"https:\/\/secondlife.lol\/zh\/what-is-kiro-aws-agentic-ide\/\" data-type=\"post\" data-id=\"5429\" target=\"_self\">AI coding agent<\/a> \uac00 \ub3d9\uc791\ud558\ub294 <strong>\ubc29\ubc95\uacfc \ud0c0\uc774\ubc0d\uc744 \uc790\ub3d9 \uc870\uc815\ud558\ub294 \uae30\ub2a5<\/strong>\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd08\uae09\uc790\uac00 \uaf2d \uc54c\uc544\uc57c \ud558\ub294 3\uac00\uc9c0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 keyword-detector<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u201c\uc815\ub9ac\ud574\uc918\u201d, \u201c\ucc3e\uc544\uc918\u201d, \u201c\ub9ac\ud329\ud130\ub9c1\u201d \uac19\uc740 \ud0a4\uc6cc\ub4dc \uac10\uc9c0<\/li>\n\n\n\n<li>\uc790\ub3d9\uc73c\ub85c \ubd84\uc11d \ubaa8\ub4dc \ub610\ub294 \uad6c\uc870\ud654 \ubaa8\ub4dc \uc804\ud658<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 auto-compact<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\ub300\ud654\uac00 \ub108\ubb34 \uae38\uc5b4\uc9c0\uba74 \uc790\ub3d9 \uc694\uc57d + \ub9e5\ub77d \uc720\uc9c0<\/li>\n\n\n\n<li>\ud130\ubbf8\ub110 \ud658\uacbd\uc5d0\uc11c \ub9e4\uc6b0 \uc911\uc694\ud55c \uae30\ub2a5<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\u2714 todo-enforcer<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc791\uc5c5 \uc911 TODO\ub97c \ubc1c\uacac\ud558\uba74 \u201c\ud574\uc57c \ud560 \uc77c\u201d\ub85c \ub2e4\uc2dc \uc548\ub0b4<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 \uae30\ub2a5\ub4e4\uc740 \ucd08\uae09\uc790\uac00 \u201c\ub9dd\uac00\ub728\ub9ac\uae30 \uc26c\uc6b4 \ud750\ub984\u201d\uc744 \ubcf4\ud638\ud574 \uc90d\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">7. MCP(\uc678\ubd80 \ub3c4\uad6c) \uc5f0\ub3d9\ud558\uae30 \u2014 \ud544\uc218\ub294 \uc544\ub2c8\uc9c0\ub9cc \ub9e4\uc6b0 \uac15\ub825\ud568<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd08\uae09\uc790\ub294 \uc2a4\ud0b5\ud574\ub3c4 \ub418\uc9c0\ub9cc, \ub098\uc911\uc5d0 \uc4f0\uba74 \uc815\ub9d0 \uc720\uc6a9\ud55c \uae30\ub2a5\uc785\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\uc608: \uc6f9 \uac80\uc0c9 MCP \ud65c\uc131\ud654<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\"mcp\": {\n  \"websearch_exa\": true\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774\ub7ec\uba74 \uc790\uc5f0\uc5b4\ub85c \uc774\ub807\uac8c \ub9d0\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\uc774 \ucf54\ub4dc\uc640 \ube44\uc2b7\ud55c \ud328\ud134\uc774 GitHub\uc5d0 \uc788\ub294\uc9c0 \ucc3e\uc544\uc918.<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">8. \ucd08\uae09 \uac1c\ubc1c\uc790\ub97c \uc704\ud55c \uad8c\uc7a5 \uc124\uc815 \uc21c\uc11c<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc544\ub798 \uc21c\uc11c\ub300\ub85c \uc124\uc815\ud558\uba74 \uc2dc\ud589\ucc29\uc624\uac00 \uac70\uc758 \uc5c6\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>global \uc124\uc815 \ud30c\uc77c \uc0dd\uc131<\/strong> (<code>~\/.config\/opencode\/oh-my-opencode.json<\/code>)<\/li>\n\n\n\n<li>\uae30\ubcf8 agent 3~4\uac1c \ub4f1\ub85d (@oracle, @explore, @document \ub4f1)<\/li>\n\n\n\n<li>keyword-detector \/ auto-compact \ud65c\uc131\ud654<\/li>\n\n\n\n<li>\ud504\ub85c\uc81d\ud2b8 \ub8e8\ud2b8\uc5d0 AGENTS.md 1\uac1c \uc0dd\uc131<\/li>\n\n\n\n<li>auth, billing \uac19\uc740 \ud575\uc2ec \ud3f4\ub354\uc5d0\ub9cc \ucd94\uac00 AGENTS.md \ubc30\uce58<\/li>\n\n\n\n<li>\ud544\uc694\ud55c \uc21c\uac04\uc5d0\ub9cc MCP \uc5f0\ub3d9<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">\uc774 6\ub2e8\uacc4\uba74 \uac70\uc758 \ubaa8\ub4e0 \ucd08\uae09\uc790\u2013\uc911\uae09\uc790 \uac1c\ubc1c\ud658\uacbd\uc740 \uc548\uc815\uc801\uc73c\ub85c \uad6c\uc131\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">9. \uc2e4\uc81c \uc608\uc2dc: \u201c\uc774 \ucee4\ubc0b \uad6c\uc870 \uad1c\ucc2e\uc544?\u201d\ub77c\uace0 \ubb3c\uc5b4\ubcf4\ub294 \uc2dc\ub098\ub9ac\uc624<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">\uc124\uc815\uc744 \ub9c8\ucce4\ub2e4\uba74 \uc774\uc81c \ub2e4\uc74c\uacfc \uac19\uc740 \ub300\ud654 \ud750\ub984\uc774 \uac00\ub2a5\ud569\ub2c8\ub2e4:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@oracle \uc9c0\uae08 src \ub514\ub809\ud130\ub9ac \uc804\uccb4 \uad6c\uc870\uac00 \ub108\ubb34 \ubb34\uac70\uc6b4 \ub290\ub08c\uc774\uc57c.\n\uac01 \ud3f4\ub354 \uae30\ub2a5\uc744 \uae30\ubc18\uc73c\ub85c \ub9ac\ud329\ud130\ub9c1 \uc81c\uc548\ud574\uc918.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6216<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@document \ubc29\uae08 \ub9cc\ub4e0 \uae30\ub2a5\uc744 \ud300 \ubb38\uc11c\uc5d0 \ub123\uc744 \ubc84\uc804\uc73c\ub85c \uc694\uc57d\ud574\uc918.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\u6216<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@explore \uc774 \ud568\uc218\uac00 \uc5b4\ub514\uc11c \ud638\ucd9c\ub418\ub294\uc9c0 \uc804\ubd80 \ucc3e\uc544\uc918.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">\ucd08\uae09 \uac1c\ubc1c\uc790\ub3c4 \u201c\uc5d0\uc774\uc804\ud2b8\uc5d0\uac8c \ub9e1\uae38 \uc218 \uc788\ub294 \uc21c\uac04\u201d\uc774 \ud06c\uac8c \ud655\uc7a5\ub429\ub2c8\ub2e4.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u7ec4\u7ec7\u8d77\u6765<\/h2>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">\uc774\ubc88 \uae00\uc5d0\uc11c\ub294\r\n\r\n <strong>Oh My OpenCode\uc758 \uc124\uce58 \ubc0f \uc124\uc815 \ubc29\ubc95<\/strong>\uc744<br>\ucd08\uae09 \uac1c\ubc1c\uc790\ub3c4 \uc5b4\ub835\uc9c0 \uc54a\uac8c \ub530\ub77c \ud560 \uc218 \uc788\ub294 \uc218\uc900\uc73c\ub85c \uc815\ub9ac\ud588\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\ud575\uc2ec \uc694\uc810\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\uc124\uce58\ub294 \ud55c \uc904\uc774\uba74 \ub05d<\/li>\n\n\n\n<li>\uc124\uc815 \ud30c\uc77c\uc740 global \u2192 project override \ubc29\uc2dd\uc774 \ud3b8\ud568<\/li>\n\n\n\n<li>agent \uad6c\uc131\uc740 \ud68c\uc0ac \uc870\uc9c1\ucc98\ub7fc \uc5ed\ud560 \uc911\uc2ec\uc73c\ub85c \ub9cc\ub4e4\uba74 \uc798 \uc791\ub3d9<\/li>\n\n\n\n<li>\uaddc\uce59(AGENTS.md)\uc740 \ud504\ub85c\uc81d\ud2b8 \uad00\uc810\uc744 AI\uc5d0\uac8c \uc2ec\uc5b4\uc8fc\ub294 \ud575\uc2ec \ubc29\ubc95<\/li>\n\n\n\n<li>hooks\ub294 \ucd08\uae09\uc790\ub97c \ubcf4\ud638\ud558\uace0 \ud750\ub984\uc744 \uc790\ub3d9\ud654\ud574\uc8fc\ub294 \ubcf4\uc870 \uc2dc\uc2a4\ud15c<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph translation-block\">\uc774\uc81c \ub2e4\uc74c \uae00\uc5d0\uc11c\ub294 <strong>\ub2e4\uc911 \uc5d0\uc774\uc804\ud2b8 \uae30\ubc18 \uc791\uc5c5 \ud750\ub984(ultrawork) \uc2e4\uc804 \uc608\uc2dc<\/strong>\ub97c \ub2e4\ub8f9\ub2c8\ub2e4.<br>\uc5ec\uae30\uc11c\ubd80\ud130 OpenCode \uac1c\ubc1c \uacbd\ud5d8\uc774 \uc9c4\uc9dc \u201c\ub808\ubca8\uc5c5\u201d\ub429\ub2c8\ub2e4.<\/p>","protected":false},"excerpt":{"rendered":"<p>OpenCode\ub97c \uc124\uce58\ud574\ubcf8 \ubd84\ub4e4\uc740 \u201c\uae30\ubcf8 \uae30\ub2a5\ub3c4 \uaf64 \uc88b\uc740\ub370, \uc0ac\ub78c\ub4e4\uc774 \ub9d0\ud558\ub294 \u2018\ub2e4\uc911&#8230;<\/p>","protected":false},"author":3,"featured_media":5627,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_blocks_custom_css":"","_kad_blocks_head_custom_js":"","_kad_blocks_body_custom_js":"","_kad_blocks_footer_custom_js":"","_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"categories":[7],"tags":[1043,1051,1135,1046,1040,1136,1134],"class_list":["post-5392","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-coding","tag-ai-coding-agent","tag-oh-my-opencode","tag-opencode-","tag-terminal-ai-ide","tag-1040","tag-1136","tag-1134"],"taxonomy_info":{"category":[{"value":7,"label":"\uc778\uacf5\uc9c0\ub2a5(AI)"}],"post_tag":[{"value":1043,"label":"AI coding agent"},{"value":1051,"label":"Oh My OpenCode"},{"value":1135,"label":"OpenCode \ud655\uc7a5"},{"value":1046,"label":"terminal AI IDE"},{"value":1040,"label":"\uba40\ud2f0\uc5d0\uc774\uc804\ud2b8"},{"value":1136,"label":"\uc790\ub3d9\ud654 \uc124\uc815"},{"value":1134,"label":"\ud50c\ub7ec\uadf8\uc778 \uc124\uce58"}]},"featured_image_src_large":["https:\/\/secondlife.lol\/wp-content\/uploads\/2025\/12\/image-15-12-600x412.jpg",600,412,true],"author_info":{"display_name":"TERE","author_link":"https:\/\/secondlife.lol\/zh\/author\/tere\/"},"comment_info":0,"category_info":[{"term_id":7,"name":"\uc778\uacf5\uc9c0\ub2a5(AI)","slug":"ai-coding","term_group":0,"term_taxonomy_id":7,"taxonomy":"category","description":"","parent":20,"count":74,"filter":"raw","cat_ID":7,"category_count":74,"category_description":"","cat_name":"\uc778\uacf5\uc9c0\ub2a5(AI)","category_nicename":"ai-coding","category_parent":20}],"tag_info":[{"term_id":1043,"name":"AI coding agent","slug":"ai-coding-agent","term_group":0,"term_taxonomy_id":1043,"taxonomy":"post_tag","description":"","parent":0,"count":10,"filter":"raw"},{"term_id":1051,"name":"Oh My OpenCode","slug":"oh-my-opencode","term_group":0,"term_taxonomy_id":1051,"taxonomy":"post_tag","description":"","parent":0,"count":3,"filter":"raw"},{"term_id":1135,"name":"OpenCode \ud655\uc7a5","slug":"opencode-%ed%99%95%ec%9e%a5","term_group":0,"term_taxonomy_id":1135,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1046,"name":"terminal AI IDE","slug":"terminal-ai-ide","term_group":0,"term_taxonomy_id":1046,"taxonomy":"post_tag","description":"","parent":0,"count":9,"filter":"raw"},{"term_id":1040,"name":"\uba40\ud2f0\uc5d0\uc774\uc804\ud2b8","slug":"%eb%a9%80%ed%8b%b0%ec%97%90%ec%9d%b4%ec%a0%84%ed%8a%b8","term_group":0,"term_taxonomy_id":1040,"taxonomy":"post_tag","description":"","parent":0,"count":4,"filter":"raw"},{"term_id":1136,"name":"\uc790\ub3d9\ud654 \uc124\uc815","slug":"%ec%9e%90%eb%8f%99%ed%99%94-%ec%84%a4%ec%a0%95","term_group":0,"term_taxonomy_id":1136,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"},{"term_id":1134,"name":"\ud50c\ub7ec\uadf8\uc778 \uc124\uce58","slug":"%ed%94%8c%eb%9f%ac%ea%b7%b8%ec%9d%b8-%ec%84%a4%ec%b9%98","term_group":0,"term_taxonomy_id":1134,"taxonomy":"post_tag","description":"","parent":0,"count":1,"filter":"raw"}],"_links":{"self":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/5392","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/comments?post=5392"}],"version-history":[{"count":4,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/5392\/revisions"}],"predecessor-version":[{"id":6045,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/posts\/5392\/revisions\/6045"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/media\/5627"}],"wp:attachment":[{"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/media?parent=5392"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/categories?post=5392"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/secondlife.lol\/zh\/wp-json\/wp\/v2\/tags?post=5392"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}