もっと仕事でCopilotを使いこなせる方法がわかる!『Microsoft 365 Copilot踏み込み活用術』を5名様にプレゼント! 4月1日 10:00
めちゃくちゃ良い記事でした。 「OSS は使っていることを公言するだけでも貢献になる」と songmu さんが言っていたので、私も貢献したいと思います。 僕も貢献したいのでよく使うコマンドラインツールを紹介していきます。 特定のプログラミング言語等に依存するツールは省いています。 actionlint - GitHub Actions の Workflow ファイルの静的解析 GitHub Actions の Workflow ファイルの静的解析ツールです。 かなり精度が高く、色々な設定ミスを検知してくれます。 エラーメッセージも見やすくて助かります。 aicommits - コミットメッセージを自動生成 変更内容を元に自動でコミットメッセージを AI が生成してくれるツールです。 コミットをする前にちゃんと確認してくれるのも安心感があって良いです。 cLive - ターミナル操作を自動化
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
電子メール、ネットワーク機器集中管理、異常検知、分散処理、クラウド基盤などのシステム開発に従事。古代Rubyist。 CLI や TUI なアプリケーションを使っていると、端末の画面が崩れてしまうことがよくあります。 たとえば、こんな TUI が、 環境によってはこんな感じで崩れます。 スクロールなどをしながらしばらく使っているとさらにどんどん崩れていきます。 こうなってしまった場合、とりあえず Ctrl-l で画面を再描画することで、大抵はなんとか読める程度にリセットできますので、ことあるごとに Ctrl-l を連打することになります。 ですが、どうしようもないケースもままあります。 例えば、私の場合は以下のようなシチュエーションで困ります。 w3m でテーブルなどを表示するとレンダリングが崩れる less でログの閲覧の際に表示されるべき文字が表示されず見落としが発生する Wander
機能 TUIながらGUIライクな体験を売りにしているMarkdownビューア。 GitHub形式のアラート表記、40以上の言語のシンタックスハイライト、カラム揃えに対応した罫線つきテーブル表示といったレンダリングの拡張を備え、Latex/MermaidもUnicode記号等を用いて描画できます。 目次サイドバー、Fuzzy Finderなどの機能も同梱し、複数のファイルをブラウジングすることにも長けています。 watchモードやstdinからのパイプ接続も可能で、公式サイトではAIツールの出力をそのまま流し込む例が紹介されています。 ArtoのサンプルMarkdownを表示させてみました。文字スタイルや表組みがきれいに表示されていて良い感じです。 Unicodeで対応する文字が存在すれば数式も表示できます。複雑な数式はちょっと表現しきれないようですね。 MermaidもAscii Artで
こんにちは!株式会社AI Shift で Web フロントエンドエンジニアをしている辰川です! 今回は、筆者が愛用している Git の TUI ツールである lazygit について紹介します。 Git 操作、こんなことで困っていませんか? git add して git commit して git push ...。 日々の開発で繰り返す、この一連の Git 操作。 ターミナルでのコマンド入力は素早い反面、少し特殊な状況になると急に難解な呪文のように感じられますよね。 かといって、GUI ツールに切り替えるのも万能ではありません。 キーボードから手を離し、マウスに持ち替えて何度も画面をポチポチする作業は、集中力を削ぎますし、キーボード中心の操作フローに慣れていると、かえって面倒に感じることも少なくないです。 「ターミナルの速度感」と「GUI の視覚的な分かりやすさ」。 もし、この 2 つの
We, developers, spend a lot of time in our terminal. Or maybe we could spend even more, because there are so many great CLI/TUI tools that can boost the developer productivity, or just be fun to use. This article contains a categorized list of CLIs / TUIs I personally use and those widely adopted in the development community. Kubernetesk9s - Kubernetes CLI To Manage Your Clusters In Style! K9s pro
(この記事の AI 成分は 5 割ぐらいです) claude-code や gemini-cli を触った人なら、やたらリッチな CLI のインターフェースが一体どうなってるか疑問に思ったはずです。 これは ink というライブラリで実装されています。実体は React のカスタムレンダラーで、React の差分レンダリングで CLI を構築することができます。 中では yoga というレイアウトエンジンが使われており、これは React Native でも使われているもので、 Web で display: flex を使ったときと同じレイアウト計算モデルになります。 つまり、 React や ReactNative の知識で CLI (TUI) の アスキーアートの UI を作ってるわけですね。 実際に作ってみた例 React Ink の可能性を探るべく、ターミナルで動くゲームを実装して
近年、普段の作業をマウスでやりたくない気持ちが高まっている(デスク周りが散らかってきたせいだという説が有力です)。メールは結局ターミナルでメールを読むことにしたため問題なく過ごせているが、その他のタスクをキーボードだけでやるには、ターミナル動くアプリケーションを作れる必要がある。それもリッチなやつだ。見た目は派手な方がいい。 この記事は Kyoto.go remote #32 LT会 で発表した 入門 Bubble Tea の増補版です。 Bubble Tea とは GitHub - charmbracelet/bubbletea: A powerful little TUI framework 🏗 Bubble Tea とは、Go でリッチなターミナルアプリケーション(TUI)を作るためのフレームワーク。Charm というプロジェクトの一部のようで、ホームページを見てもらったら分かると
TUI ツールを Vibe coding で作ることが最近多く、その際の動作確認として tuistory というツールを使っていて便利だったので紹介する。 tuistory はどんなツールか 簡単に言うと Terminal 版の Playwright。 playwright-cli や agent-browser みたいなインターフェイスで、仮想ターミナルの起動や操作、内容の取得が出来る。 $ tuistory launch "nvim" -s nvim --cols 80 --rows 40 Session "nvim" started $ tuistory -s nvim snapshot --trim buffers __ ___ ___ ___ __ __ /\_\ ___ ___ / _ `\ / __`\ / __`\/\ \/\ \\/\ \ / __` __`\ /\ \/
作ってみたかった ある日 Slack で雑談していて、 僕の考えた最強の< >ツール なんか作りたいよね。なにかないか。 って流れになった。定番どころで、OS、コンパイラ、ブラウザをまず想像したけど、そう言えばずっとファイラー作りたかったんだよなぁと思い出した。たぶん 15 年ぐらいずっと欲しいって言ってたと思う。 Windows を使っていた頃は あふw ユーザーだったので、あの体験が懐かしいなぁと思いながら暮らす日々でした。*1 2 画面ファイラーの良さは省略します。言うまでもなく最高なので。 作ってみた やるかーと思って「double_drive」ってプロジェクト名を決めた。あとは AI と壁打ちしながら作ったのがコレです。 デュアルペインで直感的にファイル操作できる curses を生っぽく使うのかなと考えていたけど、少し調べてみたら TUI な枠を描ける RubyGems や C
コードを素材にしたOSSのTUIタイピングゲーム GitType を作った。この記事では「どんな仕組みか」をまとめる。 どういうゲームか 全体アーキテクチャ GitType の構成は次の通り。 問題生成フロー ゲームプレイフロー AST とコード片切り出し(Tree-sitter) GitType は Tree-sitter を使ってソースコードを構造的に解析し、意味のある単位でコード片を抽出する。 抽出の仕組み 1. パーサーレジストリによる言語管理 各言語専用の LanguageExtractor とTree-sitterパーサーを事前に登録。言語固有のクエリパターンと抽出ロジックを一元管理。 2. AST構築とクエリ実行 ソースファイルをTree-sitterでパースしてAST(抽象構文木)を構築。言語固有のクエリを使って関数、クラス、メソッドなどの構文要素を検索。 3. 構造的なチ
01Multi-file review streamThe whole changeset in a sidebar. Jump between files, see counts, review top to bottom. 02Inline agent annotationsAI reasoning renders beside the code it describes — context lives in the diff, not another tab. 03Split · stack · autoLayouts that adapt to your terminal width. Toggle wrapping and line numbers at runtime. 04Watch modeAuto-reloads as the working tree changes.
以前上記で、自作しているtuiツールを紹介しました。 需要があるかわかりませんが、今回はoctorusで行っているパフォーマンス最適化について紹介します。 そもそも何が速いのか? 「速い」といっても色々あります。表示ひとつとっても、初回表示の速さやハイライトを当てる速さ、スクロールのスムーズさ(fps)など多様です。 ユーザーの体感速度の速さと、内部的な速さは必ずしもイコールにはなりません。例えばどれだけゼロコピーやキャッシュを頑張っても、取得するPRが巨大な場合API通信がボトルネックになりますし、レンダリング面を工夫しなければフリーズしてしまうこともあります。 octorusでは実装面でできることはやりつつ、ウェブアプリ的な最適化(FCP/LCP/INP)もしています。 コアコンセプト 基本的にはtuiの表示状態によって非同期にキャッシュを構築し、利用しています。5層のキャッシュを持つ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 株式会社ジークス 3年目の竹村です。 毎年恒例のアドベントカレンダー企画ということで、久しぶりに投稿いたします! 今回は最近使っていて気に入っている、ターミナル関連のツールについて紹介したいと思います。 仕事やそれ以外で実装するにあたり、長時間PCに向き合うことが多いので、少しでも使いやすかったり、使い心地の良い、お気に入りのツールを使うことを心がけています。 まだまだリサーチ中ではありますが、いくつか紹介させていただきます! ※システムの時計が深夜のものがありますが、夜行性の私が趣味の実装を夜中にやっていたものであり、仕事と
Yazi (means "duck") is a terminal file manager written in Rust, based on non-blocking async I/O. It aims to provide an efficient, user-friendly, and customizable file management experience. 💡 A new article explaining its internal workings: Why is Yazi Fast? 🚀 Full Asynchronous Support: All I/O operations are asynchronous, CPU tasks are spread across multiple threads, making the most of available
Inline Viewports Standard TUIs erase themselves on exit. Your carefully formatted CLI output disappears. Users lose their scrollback. Inline viewports solve this. They occupy a fixed number of lines, render rich UI, then leave the output in place when done. Perfect for spinners, menus, progress indicators—any brief moment of richness. class Spinner def main RatatuiRuby.run(viewport: :inline, heigh
┌────────────────────────────────────────────────────────────────────────────────────────────────────┐ │╭ Syscalls ─────────────────── f:all ╮╭ Details <tab> ─────────────────────────────── x:auto m:man ╮│ ││ execve("/usr/bin/ping",...) 0││ recvmsg pid 7 (#0) 15:04:20.358200064 0.000150s ││ ││ brk(NULL) 0x558>││ ping localhost ││ ││ access("/etc/ld.so.prel...) ENOENT││ Receive a message from a soc
██████╗██╗ ██╗ █████╗ ██████╗ ███╗ ███╗ ██╔════╝██║ ██║██╔══██╗██╔══██╗████╗ ████║ ██║ ███████║███████║██████╔╝██╔████╔██║ ██║ ██╔══██║██╔══██║██╔══██╗██║╚██╔╝██║ ╚██████╗██║ ██║██║ ██║██║ ██║██║ ╚═╝ ██║ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝ RUBY Ruby bindings and ports of the beloved Charm terminal libraries. Build glamorous TUIs, style terminal output, create beautiful forms, and make your Ruby CL
Ratatui is a Rust library for building fast, lightweight, and rich terminal user interfaces use ratatui::style::Stylize; use ratatui::widgets::{Block, Paragraph}; fn main() -> Result<(), Box<dyn std::error::Error>> { ratatui::run(|terminal| { terminal.draw(|frame| { let block = Block::bordered().title("Welcome"); let greeting = Paragraph::new("Hello, Ratatui! 🐭") .centered() .yellow() .block(bloc
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く