リファクタリングを補助するためのLLMアプリ (OSS) 一覧
はじめに
近年では、LLM(大規模言語モデル)を活用することで、変数名の変更、関数の抽出、コードの整形など、プログラムのリファクタリング作業を自動化できるようになってきました。ここでは、以下の条件を満たすPython中心の軽量~中規模のオープンソースアプリケーションを調べました:
- LLMによるリファクタリング支援
- バックエンドがDjangoまたはFastAPI(もしくはPythonベース)
- UIがある(WebまたはIDE統合)
- コードがGitHubなどで公開されている
LLMによるリファクタリングツール (OSS)
Refact.ai(smallcloudai/refact)
Refactは、リファクタリングやコード補完など、AIによる開発支援ができる自己ホスト型のオープンソースアシスタントです。
- 使用LLM: 複数のモデルに対応可能。OpenAI GPT-4やAnthropic Claude、Code Llama(GPT-4oやo3-miniなど)など、外部APIやローカルモデルどちらも対応可能です。
- バックエンド: Pythonベースの自己ホスト型サーバー(ポート8008でローカル実行)。Django/FastAPIの明記はありませんが、軽量なWebサーバーやFastAPIベースの可能性があります。GitやDockerと連携してコードの文脈を保持します。
- フロントエンド: 専用のWeb UIはなく、VSCode拡張やJetBrainsプラグインなどIDE統合が中心。
- 主なリファクタリング機能: 自然言語で指示することで、可読性向上や品質改善のためのコードリファクタリングを実行。他にもコード補完、バグ修正、テスト生成なども可能。
- UI: あり(IDE内チャットUI)。Web UIはないが、開発者が日常的に使うIDE内で完結。
- GitHub: smallcloudai/refact
Aider(paul-gauthier/aider)
AiderはCLI(コマンドライン)ベースで使える軽量なAIコーディングアシスタントで、Gitリポジトリと連携しながらリアルタイムでコード編集やリファクタリングが可能です。
- 使用LLM: OpenAI GPT-3.5とGPT-4をAPI経由で利用(フォーク版ではOllamaによるローカルモデル対応もあり)。
- バックエンド: Python製のCLIツール。Webフレームワークは使っていません。ローカルのGitとファイル構成を活用。
- フロントエンド: ターミナル上でのチャットインターフェース。
- 主なリファクタリング機能: 自然言語で「この変数名を変えて」「この処理を関数に分離して」などと指示すると、GPTが提案し、変更を直接コードに適用してGitにコミットします。複数ファイルにまたがる変更にも対応。
- UI: あり(CLIベース)。WebやグラフィカルUIはないが、変更差分やコミットメッセージをターミナルに表示。
- GitHub: paul-gauthier/aider
CodeCraftGPT(pmutua/CodeCraftGPT)
CodeCraftGPTはStreamlitベースのWebアプリで、コードリファクタリングやスタイル修正、テスト生成、言語変換などの機能を提供しています。
- 使用LLM: OpenAIのGPTモデル(API経由)。内部ではLangChainでプロンプト構築や処理を統合。
- バックエンド: Python製でStreamlitをWebフレームワークとして使用。DBなどの外部ストレージは不要。
- フロントエンド: StreamlitのブラウザUI。複数タブ構成で、各機能(リファクタ、整形、テストなど)に分かれています。
-
主なリファクタリング機能: “RefactorRite”というモジュールで、コードの改善提案や修正(構造改善、命名最適化、可読性向上など)を実行。他にも:
- StyleSculpt: コーディング規約に沿ったスタイル修正
- TestGenius: テストケース生成
- LangLink: 異なる言語へのコード変換
- UI: あり(Web UI)。コード入力欄と出力欄があり、ブラウザで完結。
- GitHub: pmutua/CodeCraftGPT
自動リファクタリングパイプライン(FlightVin)
このツールはやや特殊で、コードスキャン → リファクタリング → GitHub PR作成までを自動で行うバックグラウンド型サービスです。ユーザー操作型ではなく、CI/CD的な使い方が中心です。
- 使用LLM: OpenAIのCodexやGPT-4などの使用を想定。
- バックエンド: Pythonスクリプト。定期実行(cronなど)でリファクタリング処理を実行。
- フロントエンド: なし(自動化処理のみ)。出力はGitHubのPull Requestとして通知。
-
主なリファクタリング機能:
- コードスキャンでコードスメル(長すぎる関数、深いネストなど)を検出
- LLMを用いて構造を改善(関数分離、命名改善など)
- GitHubに自動でPull Requestを作成。どんなリファクタリングを行ったかの説明付き
- UI: なし(GitHub PR経由で確認)。
- GitHub: FlightVin/automated-refactoring
QuantaAgent(Clay-Ferguson/quantizr)
QuantaAgentは、LangChainベースのAIコーディングエージェントで、Streamlit製のWebチャットUIを通じて自然言語でのリファクタリング指示を受け取り、プロジェクト全体のコードに対して自動的に変更を適用することができます。
- 使用LLM: OpenAIのGPTモデル(API経由)。LangChainのエージェントツールを活用して対話・コード変更を実施。
-
バックエンド: Python製でLangChainを使用。ファイル編集はLangChainの
agent
とtools
を使って動的に処理。 - フロントエンド: StreamlitベースのWebチャットUI。簡易的な入力欄と応答表示、変更ログの表示機能付き。
-
主なリファクタリング機能:
- 指定ディレクトリ内のプロジェクトコードを直接読み取り・書き換え可能
- 自然言語で「関数を整理して」「全てのAPIパスをv2に変更して」などの高レベルな指示に対応
- ファイルの新規生成や復元、複数ファイルへの変更も自動実行
- UI: あり(WebチャットUI)。会話形式でリファクタリング指示を行い、実行ログが都度表示される。
- GitHub: Clay-Ferguson/quantizr
OpenHands(All-Hands-AI/OpenHands)
OpenHandsは、自律的に動作するAIソフトウェアエージェントプラットフォームで、コードリファクタリングやプロジェクト生成、ドキュメント整備などを対話形式で実行可能なVSCode風のWeb UIを備えています。
- 使用LLM: Anthropic Claude 3.5を推奨(その他OpenAIやローカルモデルも切り替え可能)。LangChainを用いてマルチエージェント構成。
- バックエンド: Python製。LangGraphで構築された自律型エージェントがコード編集、検索、ブラウジングなどの役割を分担。
- フロントエンド: React+TypeScript製のWeb UI。マルチペイン構成(チャット、コードエディタ、ブラウザ、ターミナル)で、VSCode風の使い勝手。
-
主なリファクタリング機能:
- 指定リポジトリを対象に「このコードを整理して」などの自然言語指示でコード全体の構造改善や命名最適化を実行
- コードの自動修正→動作確認→必要なら調査→修正の繰り返しまで一括で自動化
- プロトタイプ生成やコードコメント挿入、設計リファクタまで対応
- UI: あり(高機能なWebチャット+エディタUI)。エディタにリアルタイムでコード修正が反映され、履歴管理や手動編集も可能。
- GitHub: All-Hands-AI/OpenHands
LangChain Coder AI(haseeb-heaven/langchain-coder)
LangChain Coder AIは、LLMを活用してコードの生成、修正、スタイル改善、リファクタリング提案を行うStreamlit製のWebアプリケーションです。エディタとコード実行環境を統合したインタラクティブな開発UIが特徴です。
- 使用LLM: OpenAI(GPT-3.5/4)およびGoogle Vertex AI(PaLM/Codey/Gemini)をLangChain経由で選択・連携可能。
- バックエンド: Python製。LangChainを使って各種LLMと接続。ローカル実行可能なコード生成・実行環境を備える。
- フロントエンド: StreamlitベースのWebアプリUI。コードエディタとテキストプロンプト欄、コード実行ボタン付き。
-
主なリファクタリング機能:
- 「この関数を最適化して」「モジュール分割して」「エラーハンドリングを追加して」など自然言語によるスタイル・構造改善
- 入力したコードに対して修正提案・リファクタ済みコードの生成
- コードの実行機能付きで、リファクタ後の動作確認が即可能
- UI: あり(エディタ+実行機能付きWeb UI)。チャット形式ではなく、入力フィールド+コード出力欄で構成される。
- GitHub: haseeb-heaven/langchain-coder
まとめ比較表
プロジェクト名 | LLMの種類 | バックエンド構成 | UI/インターフェース | 主なリファクタリング機能 | UIの有無 |
---|---|---|---|---|---|
Refact.ai smallcloudai/refact |
GPT-4 / Claude / Code Llama(選択可) | Python自己ホストサーバー(Git/Docker連携) | IDE統合(VSCode, JetBrains) | 可読性・品質向上のためのコード改善提案と適用 | あり(IDE内) |
Aider paul-gauthier/aider |
OpenAI GPT-3.5 / 4 | Python製CLIツール(Git連携) | CLIチャット | 自然言語での指示によるコード編集&Gitコミット | あり(CLI) |
CodeCraftGPT pmutua/CodeCraftGPT |
OpenAI GPT(LangChain経由) | Streamlit(Python) | ブラウザUI(Streamlit) | コード改善提案、スタイル修正、テスト生成、コード変換 | あり(Web) |
FlightVin automated-refactoring |
GPTベース(Codexなど) | Pythonスクリプト(定期実行) | なし(GitHub PR) | 自動的にコードスメル検出 → PR作成による修正提案 | なし(PR経由) |
QuantaAgent Clay-Ferguson/quantizr |
OpenAI GPT(LangChain経由) | Python(LangChainエージェント) | WebチャットUI(Streamlit) | ディレクトリ内のコードを直接編集。自然言語で指示→自動変更・生成・復元が可能 | あり(Web) |
OpenHands All-Hands-AI/OpenHands |
Claude 3.5 / OpenAI / ローカルLLM(選択可) | Python(LangGraph構成のエージェント) | VSCode風Web UI(React/TS) | チャットでコードリファクタ、複数ファイル編集、検索・実行も自動化 | あり(Web) |
LangChain Coder AI haseeb-heaven/langchain-coder |
OpenAI GPT-3.5 / 4, Google Codey(LangChain経由) | Python+LangChain(Streamlit上) | コードエディタ+実行可能なWeb UI | コード生成、修正、スタイル改善、最適化提案(即時実行も可能) | あり(Web) |
Discussion