macOS から · iPhone・iPad・Android は準備中

ファイルはそのまま、
シークレットだけロック

MyConfig は、設定ファイルやノートの中のパスワードや API キーなど、値をひとつずつ選んで暗号化するエディタです。それ以外の内容はいつも通り読めて、git diff にも表示されます。アプリでは値をクリックしたときだけ、少しのあいだ表示します。

macOS 13.5 以降 · アカウント不要、デバイス内で動作

application.yaml
1# 決済サービスの設定
2server:
3 port: 8080
4db:
5 host: db.internal.example
6 user: admin
7 password:
8payment:
9 api-key:
10 webhook:
YAML · UTF-8 · LFキー 2 個 · トークン 3 個

トークンをクリックすると、アプリと同じ操作バーが出ます。[表示]を押すと値が 30 秒間表示され、自動でまた隠れます。サンプルの値はすべて架空のものです。

AES-256-GCM
値ごとに認証付き暗号化(既定)
Argon2id
128MiB のメモリでパスワード総当たりを遅く
25+
構文ハイライト対応のファイル形式
0
必要なアカウントとサーバー
  • YAML
  • .env
  • JSON
  • TOML
  • properties
  • シェルスクリプト
  • など 20 種以上
なぜ値だけを暗号化するのか

ファイルごと暗号化すると、誰も読めなくなる

ファイル全体を暗号化すれば安全ですが、何が変わったかを確認したり、ほかのツールで開いたりできなくなります。MyConfig はシークレットの部分だけをトークンに置き換えます。

ファイル全体の暗号化
  • git diff で何が変わったかわからない
  • ポートをひとつ直すにも全部復号が必要
  • エディタやリンターなど一般的なツールで読めない
MyConfig(値だけ暗号化)
server:
  port: 8080
db:
  user: admin
  password: mycfg:e:1:prod.a1b2c3d4:Qk3x…Zp9w:end
  • 構造と普通の値はそのまま読める
  • diff には変わった行だけが出て、どのキーでロックしたかもわかる
  • アプリなしで開いても、正しい YAML のまま
トークンの読み方

ファイルに残る 1 行

暗号化した値は、下のような形のトークンに置き換わります。前後が決まっているので、アプリの外でも「ここにシークレットがある」とすぐにわかります。

mycfg … end

MyConfig トークンの始まりと終わり。行が途中で切れると終わりの印がなくなるので、すぐに気づけます。

e : 1

方式と形式のバージョン。e は Vault のキー、p はパスワード方式です。

prod

人が読めるキーのヒント(任意)。アプリがなくても、どのキーか見当がつきます。

a1b2c3d4

キー ID。どのデータキーで復号するかを、アプリはこの値で探します。

Qk3xVb7c…

暗号文。既定では AES-256-GCM で暗号化しており、一文字でも書き換えると復号できません。

使い方

はじめてから、値をひとつ見るまで

  1. Vault を作る

    マスターパスワードを決めると、復旧キーを一度だけ表示します。両方を失うと元に戻せないので、復旧キーは別に保管してください。

  2. ファイルを追加

    サイドバーにファイルやフォルダをドラッグします。ファイルは元の場所でそのまま編集します。

  3. 値を暗号化

    値にカーソルを置いて ⌘E。行の中から値の部分を見つけて、トークンに置き換えます。

  4. 保存

    ⌘S。元のファイルの改行、BOM、文字コードをそのまま守ります。

  5. 必要なときに見る

    トークンをクリックして展開するか、見ずにそのままコピーします。30 秒後に自動で隠れます。

主な機能

エディタとしても、しっかり使える

構文ハイライトと構文チェック

YAML、JSON、TOML、.env、XML、シェル、Dockerfile、Nginx など 20 種以上を色分けします。そのうち YAML、JSON、TOML、.env、INI、XML、シェルスクリプトは構文もチェックし、エラーや重複キーに下線を引きます。エディタのテーマは 81 種類。

ライブラリとタブ

散らばった設定ファイルを仮想フォルダにまとめます。実際のフォルダを丸ごとリンクすることもでき、タブと開いていた状態は再起動しても元どおりです。

⌘P クイックオープン

全体検索

ライブラリ全体で検索・置換します。トークンの中は変更せず、key:prod のようにキーで絞り込めます。

⌘⇧F

シークレット候補

まだ暗号化していない、パスワードやトークンらしき値を示し、選んでまとめて暗号化できます。

複数のキーとキーの色

1 つのファイルに本番用・開発用のキーを混ぜて使えます。キーごとに色があるので、どの値がどのキーか一目でわかります。

パスワード方式のトークン

Vault なしで、パスワードだけで復号できるトークンです。自分のキーを渡さずに、同僚に値をひとつだけ渡すときに使います(受け取る側も MyConfig で復号します)。

値の挿入と変更

ランダムなシークレットを作ってそのまま挿入し、値の変更や別のキーでの再暗号化もできます。すべて ⌘Z で元に戻せます。

⌘⇧I シークレットを挿入

一括復号の書き出し

ファイル全体を復号して、新しいファイルやクリップボードに書き出します。形式に合わせて引用符を処理し、元のファイルはそのままです。

キーの受け渡し

キーをひとつ、パスワードで包んだ 1 行(mycfgkey:1:…)として書き出し、受け取る側はフィンガープリントを確認してから取り込みます。サーバーは不要です。

キーの管理

ひとつの鍵を開けると、キーの束が出てくる

Vault はキーをしまっておく金庫です。パスワードや Touch ID で金庫を開けると、中のデータキーでトークンを復号します。

開ける方法
マスターパスワード
Touch ID
復旧キー
金庫
Vault マスターキーデータを直接暗号化せず、キーを包みます
データキー(キーリング)
dev#5e6f7a8b
個人#a1b2c3d4
prod · 独立ロック#9c0d1e2f

パスワードを変えても、ファイルはそのまま

変わるのは開け方だけで、データキーは同じです。暗号化済みのファイルを暗号化し直す必要はありません。

大事なキーは別にロック

「独立ロック」のキーは、Vault を開けていても別にもう一度ロック解除が必要で、値は最大 10 秒だけ展開されます。

パスワードの総当たりに強く

マスターパスワードは Argon2id(メモリ 128MiB)で鍵を作るので、ひとつずつ試す攻撃をとても遅くします。

セキュリティ

防げること、防げないこと

できることと、できないことを両方書いておきます。

防げること保護

  • 設定ファイルの流出

    公開リポジトリに上げたりチャットで送ったりしても、Vault のキーがなければトークンは復号できません。

  • 画面共有やのぞき見

    値は最初から隠れていて、展開しても 30 秒後にまた隠れます。展開中は画面キャプチャを防ぐ設定もあります。

  • 席を外したあいだ

    5 分間操作がないとき、スリープや画面ロックのときに Vault をすぐロックします。

  • クリップボードに残り続ける

    コピーした値は 30 秒後に消し、クリップボード管理アプリに記録されないよう印を付けます。

  • うっかり平文をコピー

    範囲を選んでコピーすると、トークン(暗号文)のままコピーされます。平文は明示的なコピー操作でしか出ていきません。

防げないこと範囲外

  • ロック解除中のデバイスをマルウェアが乗っ取る

    画面やメモリを読めるなら、アプリでは防げません。代わりに「デバイスが乗っ取られたかもしれないとき」の案内とマスターキーの変更を用意しています。

  • パスワードと復旧キーを両方なくす

    設計上、元に戻せません。Vault を作るときに、復旧キーを必ず別に保管してください。

  • 暗号化する前に git に上げた値

    履歴に残った平文は消せません。こうした値は、暗号化と一緒に新しい値に変えることをおすすめします。

  • トークンの長さから値の長さを推測

    トークンが長ければ、元の値も長いことはわかります。

コマンドラインツール

暗号化したまま開発サーバーを起動

設定ファイルを復号して置いておく必要はありません。myconfig run が起動の瞬間だけ値を復号し、環境変数として渡します。

$ myconfig run --env .env -- npm run dev
# 1. .env からトークンを探して MyConfig アプリに送る
# 2. アプリで承認ダイアログ + Touch ID
# 3. 復号した値を環境変数にして npm run dev を実行
#    process.env.DB_PASSWORD → 実際の値
  • Vault のキーはアプリの中だけにあります。 CLI はトークンをアプリに送り、アプリが承認ダイアログと Touch ID を経て、復号した値だけを返します。
  • 通常はディスクに平文ファイルを作りません。 トークンを含む項目だけを環境変数にし、それ以外はプログラムが元のファイルから読みます。
  • 多くのフレームワークでそのまま動きます。 Spring Boot、Next.js、Vite、python-dotenv のように、ファイルより環境変数を優先するツールなら、特別な設定はいりません。
  • ほかのコマンド: export(復号して別の形式で出力)、encrypt・set・gen(ファイルに値を入れる)、rekey、lint(構文チェック)、lib(アプリのライブラリ整理)、keys list、status。

CLI はアプリに入っているので、別にダウンロードするものはありません。 コマンドラインツールのインストールを見る

コマンドラインツールのインストール

CLI はアプリの中に入っています。一度つないでおけば、アプリをアップデートすると CLI も同じバージョンに変わります。

  • Homebrew でインストールした場合は何もいりません。 brew install --cask myconfig がコマンドラインツールも一緒につなぎます。
  • DMG からインストールした場合は一度だけつなぎます。 アプリのメニューの MyConfig > コマンドラインツールをインストール… が、選んだフォルダにアプリ内の CLI を指すリンクを作ります。
  • Apple シリコンの Mac で使えます。 Intel Mac では今はアプリだけが使えます。

DMG からインストールした場合

  1. アプリをアプリケーションフォルダに移す

    リンクはアプリの中を指すので、あとでアプリを移すと切れます。

  2. MyConfig > コマンドラインツールをインストール…

    PATH にあるフォルダを選び、ここにインストールを押します。最初は ~/.local/bin が開きます。

  3. 新しいターミナルで確認
    myconfig status
  4. フォルダを PATH に追加見つからない場合のみ

    ~/.local/bin を選んだ場合は下の行を一度実行し、新しいターミナルでもう一度確認します。

    echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc

AI コーディングツール用スキル

Claude Code にスキルを入れると、エージェントが myconfig コマンドでサービスを起動し、平文のシークレットを暗号化します。復号した値は会話に入りません。Codex・Gemini CLI 向けは準備中です。

  • シークレットをチャットで尋ねません。 新しい値はアプリに直接入力するか(myconfig ask)、アプリがランダムに作り(myconfig gen)、ファイルにはトークンだけが入ります。
  • アプリで承認しないと進みません。 値の復号やファイルの変更の要求は、アプリの承認ダイアログと Touch ID を経ます。承認するときに、15 分間は同じ作業を聞かないようにできます。
  • 先にアプリをインストールしてコマンドラインツールをつなぎ(上の「コマンドラインツールのインストール」)、設定 > セキュリティ > コマンドラインツールの要求を受け付けるをオンにしてください。
  • Claude Code
    claude plugin marketplace add myconfig-app/myconfig-plugin
    claude plugin install myconfig@myconfig
対応デバイス

まず macOS から、順に広げます

  1. 利用可能
    • macOS13.5 以降
  2. 準備中
    • iPhone · iPad
    • Android
  3. 予定
    • Windows · Linux
よくある質問

気になること

値やキーがサーバーに送られますか?

いいえ。現在のバージョンは、アカウントもサーバーもなく、デバイスの中だけで動きます。キーを人に渡すときも、パスワードで包んだ 1 行を自分で渡すので、間にサーバーを通りません。

MyConfig を持っていない人がファイルを開くと?

普通の設定ファイルとして見え、シークレットの部分にだけ mycfg:e:1:…:end トークンがあります。ファイル形式は変わらないので、ほかのプログラムも問題なく読めます。値を復号するには、キーを持つ MyConfig が必要です。

マスターパスワードを忘れたら?

Vault を作ったときに受け取った復旧キーで開き、新しいパスワードを設定できます。パスワードと復旧キーを両方なくすと、誰にも元に戻せません。

チームで同じファイルを使うには?

キーをひとつ mycfgkey:1:… の 1 行として書き出して渡すと、受け取った人はフィンガープリントを確認してから自分の Vault に入れます。キーを渡さずに値だけを渡すなら、パスワード方式のトークンを使います。受け取った人も MyConfig で復号します。

どの言語で使えますか?

アプリの画面は日本語、韓国語、英語に対応しています。

シークレット入りの設定ファイルも、安心してコミット

ファイル形式はそのままで、値だけをロックします。

macOS 版をダウンロード

macOS 13.5 以降 · アカウント不要、デバイス内で動作

Homebrew でもインストールできます

  1. 準備初回のみ
    brew tap myconfig-app/myconfig
    brew trust --tap myconfig-app/myconfig
  2. アプリをインストール(CLI を⁠含む)CLI は Apple シリコンのみ
    brew install --cask myconfig