Skip to content

simonliu-ai-product/simon-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 專案名稱: simon-cli

📌 簡介

simon-cli 是一個基於 Python 的命令列工具,結合 AI 代理 (Code Agent) 提供程式碼修改與管理功能。使用者可透過 CLI 與後端的 Code Agent 互動,進行程式碼分析、修改與執行。

img

🧩 目錄結構

  • simon_cli_app/: CLI 主程式與相關模組。
  • code-agent/: AI 代理核心邏輯,包含 Dockerfile
  • test/: 測試腳本與範例檔案。
  • Makefile: 專案自動化指令 (建置、啟動服務等)。

🚀 快速開始 (使用 Docker & Make)

這是推薦的開發與執行方式,它能自動化環境設定與服務啟動。

前置需求

步驟 1: 啟動後端 AI 代理服務

此指令會使用 Docker 建立 code-agent 的映像檔並在背景啟動容器。

make service-up

服務將會運行在 http://localhost:8080

步驟 2: 建置並安裝 CLI 工具

此指令會打包 CLI 應用程式,並建議使用可編輯模式安裝,方便開發。

# 建置套件 (此步驟非必要,但有助於確認套件可正常打包)
make build-cli

# 使用 pip 進行可編輯模式安裝
pip install -e ./simon_cli_app

步驟 3: 開始使用

現在您可以開始與 AI 代理互動。

# 在 Terminal 進行對話互動
simon-cli 

# 建立一個新的會話
simon-cli new-session

# 開始對話
simon-cli chat "請幫我分析這個專案的程式碼"

🛠️ Makefile 指令說明

Makefile 提供了方便的指令來管理專案。

  • make service-up: 建立 Docker 映像檔並啟動後端服務。
  • make service-down: 停止並移除後端服務的 Docker 容器。
  • make build-cli: 建置 simon_cli_app 的 Python 套件。
  • make clean: 清除 Python 建置過程中產生的暫存檔案。
  • make help: 顯示所有可用的 make 指令。

⚙️ 手動安裝說明

如果您不想使用 Docker,可以依照以下步驟手動設定環境。

1. 啟動後端 AI 代理

# 安裝依賴
pip install -r code-agent/code_agent/requirements.txt

# 複製環境變數設定檔 (如果 .env 不存在)
cp code-agent/code_agent/.env.example code-agent/code_agent/.env

# 啟動服務 (adk 預設使用 8000 port)
cd code-agent && adk web

2. 安裝 CLI 工具

# 安裝依賴
pip install -r simon_cli_app/requirements.txt

# 設定環境變數,指向後端服務
export ADK_SERVER_URL=http://localhost:8787

# 進行可編輯模式安裝
pip install -e ./simon_cli_app

💡 使用方式

  • 互動方式對話視窗:

    simon-cli
  • 建立新會話:

    simon-cli new-session
  • 啟動互動式對話:

    simon-cli chat "請修改此段程式碼"

🧠 功能特色

  • 自動程式碼分析與修改
  • 與 AI 代理的即時互動
  • 支援 @-mention 語法引用特定檔案
  • 完整的會話管理機制

📄 許可證

本專案採用 MIT 許可證。

About

An open-source Google ADK AI agent that brings the power of Any LLM Model directly into your terminal.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published