Package Exports
- xo-gemini-cli-devtools
- xo-gemini-cli-devtools/dist/style.css
- xo-gemini-cli-devtools/style.css
Readme
๐ Gemini CLI DevTools
Gemini CLI DevTools๋ Google Gemini API๋ฅผ ์ฌ์ฉํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์๊ฐ ๋๋ฒ๊น , ๋ก๊ทธ ๋ชจ๋ํฐ๋ง, ๊ทธ๋ฆฌ๊ณ ํ๋กฌํํธ ํ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ค๋ฒ๋ ์ด ์์ ฏ์ ๋๋ค.
๐ฆ ์ค์น ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ (NPM Package)
์ค์น
npm install xo-gemini-cli-devtools
# or
yarn add xo-gemini-cli-devtools์ ์ฉ
React ํ๋ก์ ํธ์ ์ต์์ ์ปดํฌ๋ํธ(์: App.tsx ๋๋ main.tsx)์ ์์ ฏ์ ์ถ๊ฐํ๊ณ ์คํ์ผ์ import ํ์ธ์.
import React from 'react';
import { DevToolsWidget } from 'xo-gemini-cli-devtools';
import 'xo-gemini-cli-devtools/style.css'; // ์คํ์ผ import ํ์
function App() {
return (
<div>
{/* ๊ธฐ์กด ์ฑ ๋ด์ฉ */}
<MyApplicationContent />
{/* DevTools ์์ ฏ ์ถ๊ฐ */}
<DevToolsWidget />
</div>
);
}
### ํ๊ฒฝ ์ค์ (Environment Configuration)
์ด ์์ ฏ์ ๊ธฐ๋ณธ์ ์ผ๋ก **๊ฐ๋ฐ ํ๊ฒฝ(Development Environment)**์์๋ง ๋ ๋๋ง๋๋๋ก ์ค๊ณ๋์์ต๋๋ค.
`process.env.NODE_ENV !== 'production'`์ผ ๋๋ง ํ๋ฉด์ ํ์๋ฉ๋๋ค.
๋ง์ฝ ํ๋ก๋์
ํ๊ฒฝ(Staging ๋ฑ)์์ ๊ฐ์ ๋ก ํ์ฑํํ๊ณ ์ถ๋ค๋ฉด `enabled` ์์ฑ์ ์ฌ์ฉํ์ธ์.
```tsx
// ํญ์ ํ์ฑํ (์ฃผ์: ์ค์ ์๋น์ค ์ฌ์ฉ์์๊ฒ ๋
ธ์ถ๋ ์ ์์)
<DevToolsWidget enabled={true} />
// ํน์ ์กฐ๊ฑด์์๋ง ํ์ฑํ (์: ๊ด๋ฆฌ์)
<DevToolsWidget enabled={isAdminUser} />๐ ๋ฐฐํฌ ์คํฌ๋ฆฝํธ
์ด ํจํค์ง๋ NPM ๋ฐฐํฌ๋ฅผ ์ํด ๋ฏธ๋ฆฌ ์ค์ ๋์ด ์์ต๋๋ค.
# ์์กด์ฑ ์ค์น
npm install
# ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋น๋ (dist ํด๋ ์์ฑ)
npm run build
# NPM ๋ฐฐํฌ (๋ก๊ทธ์ธ ํ์)
npm publish1. ์์ํ๊ธฐ
์์ ฏ ์คํ
์ ํ๋ฆฌ์ผ์ด์ ์ด ์คํ๋๋ฉด ํ๋ฉด ์ฐ์ธก ํ๋จ์ ์ปค๋งจ๋(Command) ์์ด์ฝ ๋ฒํผ์ด ๋ํ๋ฉ๋๋ค. ์ด ๋ฒํผ์ ํด๋ฆญํ์ฌ DevTools ํจ๋์ ์ด๊ฑฐ๋ ๋ซ์ ์ ์์ต๋๋ค.
์ธ์ด ์ค์ (Localization)
์์ ฏ ์๋จ์ KO/EN ๋ฒํผ์ ํด๋ฆญํ์ฌ ํ๊ตญ์ด์ ์์ด ๋ชจ๋๋ฅผ ์ค์๊ฐ์ผ๋ก ์ ํํ ์ ์์ต๋๋ค.
API ํค ์ค์
- ์ค์ ๋์ ๋ชจ๋:
.envํ์ผ์API_KEY๊ฐ ์ค์ ๋์ด ์์ผ๋ฉด ์ค์ Gemini API๋ฅผ ํธ์ถํฉ๋๋ค. - ์๋ฎฌ๋ ์ด์ ๋ชจ๋: ํค๊ฐ ์์ผ๋ฉด ์๋ฎฌ๋ ์ด์ ๋ชจ๋๋ก ๋์ํ๋ฉฐ, ๊ฐ์์ ์๋ต์ ๋ฐํํ์ฌ UI/UX๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค. (์๋จ์ ๐ก ๋ ธ๋์ ์ด์ ์์ด์ฝ์ผ๋ก ํ์๋จ)
2. ์ฃผ์ ๊ธฐ๋ฅ
๐ฌ ์ฑํ ๋ฐ ์ปค๋งจ๋ ๊ด๋ฆฌ (Chat & Command Library)
๋จ์ํ 1ํ์ฑ ํ ์คํธ๋ฅผ ๋์ด, ๋ํํ ์ธํฐํ์ด์ค์ ์์ฃผ ์ฐ๋ ํ๋กฌํํธ๋ฅผ ์ ์ฅ/๊ด๋ฆฌํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
์ฑํ (Chat Interface)
- ํ๋ฉด ํ๋จ์ ์
๋ ฅ์ฐฝ์ ๋ฉ์์ง๋ฅผ ์
๋ ฅํ๊ณ
Enter๋๋ ์ ์ก(Send) ๋ฒํผ์ ๋๋ฅด๋ฉด Gemini์ ๋ํํ ์ ์์ต๋๋ค. - ์ด์ ๋ํ ๋ด์ญ์ด ์คํฌ๋กค ๊ฐ๋ฅํ ํํ๋ก ์ ์ง๋ฉ๋๋ค.
- ๋ชจ๋ธ ์ ํ: ์๋จ ๋๋กญ๋ค์ด ๋ฉ๋ด์์
gemini-2.5-flash,gemini-3-pro๋ฑ ๋ชจ๋ธ์ ๋ณ๊ฒฝํ๋ฉฐ ํ ์คํธํ ์ ์์ต๋๋ค.
- ํ๋ฉด ํ๋จ์ ์
๋ ฅ์ฐฝ์ ๋ฉ์์ง๋ฅผ ์
๋ ฅํ๊ณ
์ปค๋งจ๋ ์ ์ฅ (ํ์ ๊ด๋ฆฌ)
- ์ ๋ ฅ์ฐฝ์ ํ ์คํธ๋ฅผ ์ ๋ ฅํ๋ฉด ์ ๋ ฅ์ฐฝ ์ฐ์ธก ํ๋จ์ ์ ์ฅ(๐พ) ์์ด์ฝ์ด ๋ํ๋ฉ๋๋ค.
- ์์ด์ฝ์ ํด๋ฆญํ๊ณ **์ปค๋งจ๋ ์ด๋ฆ(์: ์ฝ๋ ๋ฆฌ๋ทฐ ํ
ํ๋ฆฟ)**์ ์
๋ ฅํ ๋ค
+๋ฒํผ์ ๋๋ฅด๋ฉด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ ์ฅ๋ฉ๋๋ค.
์ปค๋งจ๋ ๋ถ๋ฌ์ค๊ธฐ ๋ฐ ๊ด๋ฆฌ
- ์ข์ธก์ ์ฑ (๐) ์์ด์ฝ ์ฌ์ด๋๋ฐ์ ์ ์ฅ๋ ์ปค๋งจ๋ ๋ชฉ๋ก์ด ํ์๋ฉ๋๋ค.
- ์ ์ฅ๋ ํญ๋ชฉ์ ํด๋ฆญํ๋ฉด ์ ๋ ฅ์ฐฝ์ ํด๋น ํ๋กฌํํธ๊ฐ ์ฆ์ ๋ฐ์๋ฉ๋๋ค.
- ๋ถํ์ํ ์ปค๋งจ๋๋ ํญ๋ชฉ ์ฐ์ธก์ ํด์งํต ์์ด์ฝ์ ๋๋ฌ ์ญ์ ํ ์ ์์ต๋๋ค.
๐ ์ฝ์ (Console)
์ ํ๋ฆฌ์ผ์ด์ ๊ณผ Gemini API ๊ฐ์ ๋ชจ๋ ๋ก๊ทธ๋ฅผ ์ค์๊ฐ์ผ๋ก ํ์ธํฉ๋๋ค.
- ํํฐ๋ง: ์๋จ์ ๊ฒ์๋ฐ๋ฅผ ํตํด ๋ก๊ทธ ๋ฉ์์ง๋ฅผ ๊ฒ์ํ๊ฑฐ๋,
INFO,ERROR๋ฑ์ ๋ ๋ฒจ ๋ฒํผ์ผ๋ก ํํฐ๋งํ ์ ์์ต๋๋ค. - ๋ฉํ๋ฐ์ดํฐ ํ์ธ: ๋ก๊ทธ ํญ๋ชฉ์ ํด๋ฆญํ๋ฉด ์ ์ก๋ ํ๋กฌํํธ ๋ด์ฉ, ํ ํฐ ์, ์๋ฌ ์์ธ ๋ด์ฉ ๋ฑ ์จ๊ฒจ์ง JSON ๋ฐ์ดํฐ๋ฅผ ํผ์ณ๋ณผ ์ ์์ต๋๋ค.
- ์๋ ์คํฌ๋กค: ์๋ก์ด ๋ก๊ทธ๊ฐ ๋ค์ด์ค๋ฉด ์๋์ผ๋ก ์ตํ๋จ์ผ๋ก ์คํฌ๋กค๋ฉ๋๋ค.
๐ ์งํ (Metrics)
API ํธ์ถ ์ฑ๋ฅ๊ณผ ๋น์ฉ ๊ด๋ จ ๋ฐ์ดํฐ๋ฅผ ์๊ฐํํฉ๋๋ค.
- Latency Chart: API ์๋ต ์๋(ms) ์ถ์ด๋ฅผ ๊บพ์์ ๊ทธ๋ํ๋ก ํ์ธํฉ๋๋ค.
- Token Usage: ์์ฒญ๋ณ ํ ํฐ ์ฌ์ฉ๋์ ๋ง๋๊ทธ๋ํ๋ก ํ์ธํฉ๋๋ค.
- ์์ฝ ์ ๋ณด: ์ด ์์ฒญ ์, ํ๊ท ์ง์ฐ ์๊ฐ, ์ด ์ฌ์ฉ ํ ํฐ ์ ๋ฑ์ ํ๋์ ๋ณผ ์ ์์ต๋๋ค.
โ๏ธ ์ํ (State)
CLI ๋ฐ ์์ ฏ์ ๋ด๋ถ ์ํ(State)๋ฅผ JSON ํํ๋ก ๋ ๊ฒ ๊ทธ๋๋ก ํ์ธํฉ๋๋ค. ๋๋ฒ๊น ์ ํ์ฌ ์ํ ๊ฐ์ด ๊ผฌ์๋์ง ํ์ธํ ๋ ์ ์ฉํฉ๋๋ค.
3. ๋จ์ถํค ๋ฐ ํ
- ์ ์ก: ์
๋ ฅ์ฐฝ์์
Enter - ์ค๋ฐ๊ฟ: ์
๋ ฅ์ฐฝ์์
Shift + Enter - ๋ก๊ทธ ๋น์ฐ๊ธฐ: ์ฝ์ ํญ ์๋จ์
ํด์งํต์์ด์ฝ - ์ฐฝ ์ต์ํ: ์์ ฏ ์๋จ์
-์์ด์ฝ (์์ ๋ฐ๋ก ์ถ์๋์ด ๋ชจ๋ํฐ๋ง ๋ฐฉํด๋ฅผ ์ต์ํํจ)