Skip to content

Latest commit

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

olm

シェルコマンドの実行・解析・履歴管理を行う CLI ツール。 AI(ollama 等)はオプション。なくても RAG ベースで動作する。


インストール

./setup.sh
source~/.profile
olm --help

使い方

# コマンドを実行して結果を解析
olm "ls -la"# RAG ラッパーで実行(失敗時に過去の類似エラーを検索)
olm -e "git status"# stdin のテキストを解析echo"some log text"| olm --analyze
# 複数コマンドを順に実行printf"%s\n""pwd""ls -la"| olm --exec-stdin --yes
# 履歴
olm history --last 50
# 設定
olm config list
olm config set OLM_LANG jp

ディレクトリ構成

olm/
├── README.md
├── DESIGN.md ← 設計書
├── setup.sh
├── bin/
│ └── olm ← エントリポイント
├── lib/
│ ├── common.sh ← 共通関数
│ ├── cmd_analyze.sh ← --analyze
│ ├── cmd_exec.sh ← コマンド実行
│ ├── cmd_history.sh ← history
│ └── cmd_config.sh ← config
├── config/
│ ├── config.env ← デフォルト値
│ └── config.schema.txt ← キー一覧・説明
├── lang/
│ ├── en/
│ │ ├── help.txt
│ │ └── prompt.txt
│ └── jp/
│ ├── help.txt
│ └── prompt.txt
├── ai/
│ ├── ollama.sh ← ollama アダプター
│ ├── openai.sh ← 将来用
│ └── none.sh ← AI なしフォールバック
├── rag/
│ ├── run.sh ← コマンドラッパー
│ ├── store.sh ← DB 操作
│ ├── hint.sh ← コマンドヒント
│ └── rag.db ← SQLite DB
└── completion/
└── engine.sh ← リアルタイム予測変換(実装中)

設定

ユーザー設定は ~/.config/olm/config.env に書く。setup.sh が初回作成する。

キー説明デフォルト
OLM_LANG言語(en / jp)jp
OLM_MODEL_STD標準モデルphi3:3.8b-mini-4k-instruct-q4_k_m
OLM_MODEL_LGT軽量モデルphi3:3.8b-mini-4k-instruct-q4_k_m
OLM_MODEL_HVY重量モデルllama3:8b
OLM_USE_RAGRAG 有効フラグ1
OLM_AI_ADAPTERAI アダプター(ollama/openai/none)ollama
OLM_ALWAYS_PROMPT毎回追加するプロンプト(空)

全キーの説明は config/config.schema.txt を参照。


RAG

失敗したコマンドと成功したコマンドを SQLite に蓄積し、類似エラーを検索する。

# DB 初期化(初回のみ)
rag/store.sh init
# 手動でメモを登録
rag/store.sh add "venv忘れ""python,venv""source .venv/bin/activate してから実行"# 検索
rag/store.sh search "permission denied"# RAG ラッパーで実行(失敗時に自動で検索・記録)
rag/run.sh -- python train.py

環境変数(rag/run.sh)

変数説明デフォルト
AUTO_SAVE_FAILED失敗を自動保存1
DO_RAG_SEARCH失敗時に RAG 検索1
HINT_ENABLE実行前ヒント表示1
HINT_INTERACTIVEヒント選択 UIauto
LLM_ENABLERAG ヒットなし時に LLM 提案0

AI アダプター

OLM_AI_ADAPTER で切り替え。ollama が起動していなくても none で動作する。

# ollama を使う(デフォルト)
olm config set OLM_AI_ADAPTER ollama
# AI を使わない
olm config set OLM_AI_ADAPTER none

リアルタイム予測変換(実装中)

入力中のコマンドに対してリアルタイムで候補を表示する。 詳細は DESIGN.mdcompletion/ セクションを参照。


トラブルシュート

Permission denied

chmod +x bin/olm rag/run.sh rag/store.sh rag/hint.sh

rag.db not found

rag/store.sh init

ollama に繋がらない

olm config set OLM_AI_ADAPTER none

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages