Clash Config Converter(clash-converter)

Tool

概要

Clash Config Converterは、汎用的な入力フォーマットをClashが理解するYAML設定ファイルへ変換するためのPython製ユーティリティです。テンプレートとなるbase.yaml(templatesディレクトリ内)を読み込み、外部から得たプロキシ定義をproxiesセクションに埋め込み、必要に応じてproxy-groupsを更新して一貫した構成を生成します。設定のフォーマットを保ちつつ自動化することで、手作業のミスを減らし、複数のプロキシソースや定期的な設定生成に便利です。依存関係はrequirements.txtにまとめられており、main.pyを実行するだけで変換処理が走る設計になっています。

GitHub

リポジトリの統計情報

  • スター数: 5
  • フォーク数: 0
  • ウォッチャー数: 5
  • コミット数: 2
  • ファイル数: 4
  • メインの言語: Python

主な特徴

  • YAMLテンプレート(base.yaml)を読み込んで雛形を保持
  • 外部入力を解析してproxiesセクションを自動生成
  • proxy-groupsを自動更新して組み合わせを構築
  • YAMLフォーマットの整形・規約に配慮した出力

技術的なポイント

このツールは「テンプレートとなるYAMLを起点に必要箇所だけを書き換えて出力する」設計が特徴です。base.yamlを保持することでルールや既存の設定(ルーティングやルール群、Global設定など)を壊さずに、変換対象のプロキシ情報のみを差し替えられます。実装上はPythonでYAMLを読み書きするライブラリ(requirements.txtに記載される想定)を利用しているため、パースとダンプの段階で構造化データとして安全に操作できます。注目点としては、Clashの設定は配列やネスト、アンカー/エイリアスを含むため、単純な文字列置換ではなくAST的にノードを扱うアプローチが有効です。さらにproxy-groupsの更新では、既存のグループに新しいプロキシ名を追加したり、グループの並び順やデフォルト選択を維持するロジックが求められます。実務的な改善案としては、YAMLのコメントやアンカーを保持するためにruamel.yaml等のラウンドトリップ対応ライブラリを採用する、あるいはJinja2のようなテンプレートエンジンで柔軟なテンプレート化を行うことが考えられます。また、入力フォーマットが多様な場合はパーサ層を抽象化してプラグイン形式で拡張できると便利です。最後に、CLIオプション(入力ソース指定、出力先指定、dry-run、検証モード)を用意すると運用性が高まります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • README.md: file
  • main.py: file
  • requirements.txt: file
  • templates: dir

まとめ

シンプルで実用的なClash用YAML変換ツール。テンプレート運用で安全に設定更新できます。

リポジトリ情報:

READMEの抜粋:

Clash Config Converter

一个基于 Python 的工具,用于将 [输入格式] 转换为 Clash 兼容的 YAML 配置文件。

功能

  • 支持加载基础 YAML 模板
  • 自动填充 proxies 和更新 proxy-groups
  • 保持 YAML 格式规范

快速开始

  1. 安装依赖:

    pip install -r requirements.txt
  2. 修改 templates/base.yaml 根据你的需求调整规则。

  3. 运行转换器:

Bash
python main.py
...