世界を動かす技術を、日本語で。

Atuin Desktop: 実行可能なランブック – オープンソース化しました

概要

Atuin Desktop は、開発チームの ワークフロー自動化知識共有 を実現する新しいオープンソースツール。 従来のドキュメントやSlack履歴の課題を解消し、 実行可能なRunbook として再構築。 ローカル開発 の繰り返しやすさ・共有性・信頼性を向上。 Gitやリアルタイム同期、Kubernetes連携など最新機能を搭載。 今後もさらなる機能拡張を予定し、 インフラ運用の新常識 を目指す。

Atuin Desktopとは

  • Atuin Desktop は、 実行可能なRunbook として機能する新しいドキュメントツール
  • 見た目は ドキュメント、操作感は ターミナル を実現
  • ローカル開発の ワークフロー再現性共有性信頼性 の向上
  • SlackやNotionに埋もれたコマンドやノウハウの 集約・自動化
  • シェルスクリプト、データベースクエリ、HTTPリクエスト、Prometheusチャートなど 一元管理

主な特徴

  • シェル履歴 から直接Runbookを作成し、 実行・再利用 が可能
  • Jinja風テンプレート による動的な自動化
  • Git連携Hub経由のリアルタイム同期 でチーム共有
  • ドキュメント腐敗防止 :その場で実行しながら常に最新化
  • スクリプト・クエリ・リクエストの連携実行 でコンテキストスイッチ削減

4月以降の主なアップデート

  • オフライン対応・ ファイルベースGit/VCS互換 ワークスペース
  • チームアカウント 対応・リアルタイム共有
  • Kubernetes 連携によるライブ状態・モニタリング
  • MySQLクエリブロック 追加
  • ドロップダウンやコンテキストブロック 拡充
  • 多数のバグ修正・パフォーマンス改善・UIアップグレード

活用事例

  • 自動化・デバッグ :コマンド連携、システム監視、結果追跡
  • データベース運用 :マイグレーション・アクセス制御・本番クエリ管理
  • オンボーディング :新規エンジニア向け実行可能なワークフロー
  • クラスタ運用 :再利用可能でドキュメント化された自動化
  • インシデント対応 :ウィキに埋もれない実行可能Runbook
  • 運用コマンド・プロセスの共通記録システム として活用

今後のロードマップ

  • ブロック依存関係 ・高度な実行フロー対応
  • リモート実行 ・CI連携
  • 監査ログ ・権限強化
  • コメント機能 ・コラボレーション強化
  • 新ブロックタイプ 追加
  • ローカルネットワーク・コンテナ指定 など拡張
  • 認証・クラウド連携 の強化
  • UI/UXの洗練・高速化・バグ削減

参加方法・貢献

  • Atuin DesktopオープンベータApache 2.0ライセンス で公開中
  • GitHub でスター・フォーク・バグ報告歓迎:github.com/atuinsh/desktop
  • Discord公式フォーラム で議論・質問も可能
    • Discord: discord.gg/Fq8bJSKPHh
    • Forum: forum.atuin.sh

インフラ運用の知識共有・自動化の新時代 を目指すAtuin Desktopの今後に注目

Hackerたちの意見

この新しいAtuinの機能とは直接関係ないけど、ちょっと愚痴りたいことがある。先週、いくつかのディレクトリで何かをfindしようとしたんだけど、うまくいかなくて、ホームディレクトリにcdして、直感的に上矢印+リターンを押して再検索しようとしたんだ。実はその前に、Atuinが新しいエントリーを記録するのを知らないうちに止めてたんだよね。最後にAtuinが記録したエントリー、何だと思う? さあ、当ててみて。そう、rm -rf * ホームディレクトリで。幸い、重要なデータは全部バックアップしてあったから、実際には何も失わなかったけど、これは面白いエピソードとしてここに投稿してるだけ。けど、再設定した後、まだAtuinを再インストールしてないんだよね。

つまり、Bashが~/.bash_historyへの書き込みを止めて、最後のアイテムがrmだったら、同じことが起こるよね?

破壊的なオプションは、確認なしに履歴から実行できないようにすべきだね。これはこの問題に対する合理的な修正だと思う。

zshはそれを実行する前に確認を求めると思うよ。どのシェルを使ってるの?

今、ノートパソコンにopenbsdを入れてるけど、まだ履歴をファイルに保存する設定をしてないんだ。それでも今のところ、特に不便を感じてないよ。セッション間で保存する必要があるものは、エイリアスや関数、スクリプト、メモのスニペットにすればいいと思う。

これに関しての古典的なトリックは、履歴に残したくないコマンドを実行する時に、その前にスペースをたくさん入れることだね。やる時にそれを考えなきゃいけないけど…うーん、どうだろう。実際、そんな状態でもrm -rf *は絶対に書かないよ。それは機械に打ち込む最も悪魔的なコマンドだし、何をするかわからないからね!

atuinは機能強化されたシェル履歴の代替だから、これを防ぐために使える機能を見てみるといいかも。例えば、メモリ内でワイルドカードを使った破壊的なコマンドを許可しないとかね。

AIやLLM、エージェントについての言及がまったくないね。感心した :)

(こんにちは、作者です!)私たちが絶対にやらないとは保証できないけど、実際に役立つものでない限り、そういうことには興味がないんだ。内部で使わないし、ユーザーの大部分も使わないなら、実現しないよ。

これ、めっちゃ便利そう。いろんなVMやコンテナを持ってるホームサーバーがあるけど、サーバー管理はあんまりやらないから、何か壊れるたびに毎回修理方法を探さなきゃいけないんだ。ドキュメントの中にターミナルを持てるって、Pythonノートブックでコードとドキュメントを混ぜられるのと同じように、たまにしか管理しない人にとっては楽になるかも。もちろん、プロの現場では、こういうのがドキュメントを整備することで多くのプロジェクトのバスファクターを改善するよね。

その通り!個人的にも仕事でもたくさんのシステムを持ってるけど、Desktopのおかげでそれらを管理するのがすごく楽になったよ。もし試してみたら、フィードバックや質問があれば教えてね!

同じアプローチのものは https://runme.dev で見られるし、GitHubのマークダウンから直接動かしたいなら https://speedrun.cc もチェックしてみて。

ちょっと前に出会った「段階的自動化」プロジェクトを思い出すな。アイデアは、シェルスクリプトを書いて「この作業をして、終わったらエンターを押して」っていうプロンプトの連続でワークフローを正確にキャプチャすることだったんだ。それから、同じことをする自動化スクリプトに徐々に置き換えていくっていう。

段階的な自動化が大好き!ここではそれがしっかり組み込まれてるよ。まずはやるべきことを箇条書きにして、それからユーザーがもっと早くできるようにブロックを追加する感じかな。最終的には全自動化を目指すっていう。全部やるかやらないかじゃなくて、YAMLもいらない ;)

これは、MSP組織がドキュメントとワークフローを管理する方法を変えるための潜在的な基盤になると思う。各クライアントの環境を均一化してサポートを簡素化することが目標だけど、常にユニークさがあるからね。共同編集できて、バージョン管理もできて、管理作業を実行できるドキュメントがあれば、めっちゃ大きなことになるよ。ターゲットオーディエンスではないのは理解してるけど、他の使い方の可能性を想像するのはワクワクするね。

同意する!ユーザーとして避けようとは全然思ってないよ(笑)。確かに役立つことがわかる。厳密なスキーマに収まらない自動化がたくさんあって、いつもその10%は人間やカスタマイズが必要なんだ。ターミナルでできるなら、ランブックでもできるように柔軟性を持たせることを目指してるよ。

atuinが大好き!何度も助けられたよ。みんながもっとマネタイズできるといいな、それが基本製品を良く保つ助けになるから。結構経験豊富な開発者(いつもワークフローを変えるのが好きなわけじゃないけど)でも、価値を見出せると思う。E2EEの同期にはお金を払うつもりだけど、今は無料みたいだね。お金取って!

これ、めっちゃいいね!前の職場では、いくつかのチームがこんな感じで使ってたJupyterノートブックのフォークがあったよ。リモート実行がロードマップに入ってるのは見たけど、並列リモート実行も考えてるのかな?(例えば、1つのランブックを10台や100台のVMで実行するみたいな、並列SSHに似た感じ)。単一実行よりは確実に複雑だけど、ChefやAnsibleがない環境でのデバッグにはめっちゃ強力だと思う。代わりに、ランブックをローカルで実行して、いくつかのコマンドでpsshを使うって手もあるけどね。

その通り!もうSSH経由でスクリプトとターミナルブロックの実行をサポートしてるけど、もっと密接な統合を目指してるよ。並列実行もその一部だね。他に何か見たい機能ある?

僕はEmacsのorg-modeを使ってるよ。これを実現する方法についての記事があるから、参考にしてみて: https://howardism.org/Technical/Emacs/literate-devops.html

埋め込まれたスクリプトでshellcheckを実行できるようにする予定はある?

Codemirrorのリンターに絶対に組み込めるよ!問題を指摘してくれてありがとう: https://github.com/atuinsh/desktop/issues/47