<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ugo</title>
    <description>The latest articles on DEV Community by Ugo (@ugo).</description>
    <link>https://dev.to/ugo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F673604%2Fd7692e37-7aa7-4e4a-9a41-0b1e9aabb742.jpeg</url>
      <title>DEV Community: Ugo</title>
      <link>https://dev.to/ugo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ugo"/>
    <language>en</language>
    <item>
      <title>unitmux: A Floating Desktop App for Claude Code and Codex in tmux</title>
      <dc:creator>Ugo</dc:creator>
      <pubDate>Sat, 09 May 2026 08:27:00 +0000</pubDate>
      <link>https://dev.to/ugo/unitmux-a-floating-desktop-app-for-claude-code-and-codex-in-tmux-54gn</link>
      <guid>https://dev.to/ugo/unitmux-a-floating-desktop-app-for-claude-code-and-codex-in-tmux-54gn</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;If you're running Claude Code or Codex in tmux, you've probably experienced this:&lt;/p&gt;

&lt;p&gt;You want to give instructions while reading code in your editor, but every time you have to Cmd+Tab back to the terminal.&lt;/p&gt;

&lt;p&gt;The AI asks "1. Yes / 2. No" and you have to switch back to the terminal just to type &lt;code&gt;1&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;When running multiple Claude or Codex sessions in parallel, it's hard to keep track of which pane is in what state.&lt;/p&gt;

&lt;p&gt;These small context switches add up and repeatedly break your flow of thought. It's surprisingly stressful.&lt;/p&gt;

&lt;p&gt;To solve this, I built a desktop app called &lt;strong&gt;unitmux&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is unitmux?
&lt;/h2&gt;

&lt;p&gt;A desktop app that lets you send instructions directly to Claude Code or Codex running in tmux, from a floating window.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwu3qxacdbww8q2m86xz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwu3qxacdbww8q2m86xz.png" alt="unitmux session overview" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It stays always-on-top, auto-detects tmux panes, and eliminates the need to switch focus to the terminal. You can give instructions to your AI without interrupting your editor workflow.&lt;/p&gt;

&lt;p&gt;It also detects panes running the &lt;code&gt;ai&lt;/code&gt; wrapper command in addition to &lt;code&gt;claude&lt;/code&gt; and &lt;code&gt;codex&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Install with one line:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; yugo-ibuki/tap/unitmux
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  One-Click Responses to Choices
&lt;/h3&gt;

&lt;p&gt;When Claude Code or Codex presents numbered choices, unitmux automatically displays clickable buttons.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdd3gz3pvu505fjwn3my7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdd3gz3pvu505fjwn3my7.png" alt="choice buttons" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also respond instantly via keyboard with &lt;code&gt;Ctrl+1&lt;/code&gt;-&lt;code&gt;Ctrl+9&lt;/code&gt;, so you don't even need to reach for the mouse.&lt;/p&gt;

&lt;p&gt;That minor annoyance of switching to the terminal just to type a single character is gone.&lt;/p&gt;

&lt;p&gt;Update: Choice detection now supports multiple patterns beyond simple numbered lists: marker-prefixed choices (&lt;code&gt;❯&lt;/code&gt;, &lt;code&gt;›&lt;/code&gt;, &lt;code&gt;&amp;gt;&lt;/code&gt;, &lt;code&gt;●&lt;/code&gt;), colon-separated inline options such as &lt;code&gt;1: staging  2: production  3: dev&lt;/code&gt;, and multi-line labels such as permission prompts with full command text.&lt;/p&gt;

&lt;p&gt;It also intelligently filters out session rating feedback such as "How is Claude doing?" and CLI footers to avoid showing false positives.&lt;/p&gt;

&lt;p&gt;Codex support has also been improved. unitmux can detect Codex-style letter choices and uses separate heuristics for Codex prompts, including English and Japanese choice context.&lt;/p&gt;

&lt;h3&gt;
  
  
  Global Shortcut: Access from Anywhere
&lt;/h3&gt;

&lt;p&gt;Press &lt;code&gt;Cmd+Shift+H&lt;/code&gt; to bring focus back to unitmux from any app.&lt;/p&gt;

&lt;p&gt;Focus lands directly on the text area, so you can start typing right away and send with &lt;code&gt;Cmd+Enter&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Reading docs in Chrome while instructing the AI now takes just a few seconds, practically seamless.&lt;/p&gt;

&lt;p&gt;Update: The focus shortcut is now fully customizable from the Sidebar settings. It also auto-expands compact mode when triggered from another app, so you're immediately ready to type.&lt;/p&gt;

&lt;h3&gt;
  
  
  Session Status at a Glance
&lt;/h3&gt;

&lt;p&gt;Panes are listed as tabs, with a colored dot indicating status:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Green: Accepting input&lt;/li&gt;
&lt;li&gt;Orange: Processing&lt;/li&gt;
&lt;li&gt;Gray: Waiting for response / choices available&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwu3qxacdbww8q2m86xz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdwu3qxacdbww8q2m86xz.png" alt="session status and badges" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Each pane also shows a small badge for the tool:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CC&lt;/strong&gt;: Claude Code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CX&lt;/strong&gt;: Codex&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When running multiple Claude or Codex sessions in parallel, you no longer have to wonder "how far along is that pane?"&lt;/p&gt;

&lt;p&gt;Switch between panes with &lt;code&gt;Cmd+↑&lt;/code&gt; / &lt;code&gt;Cmd+↓&lt;/code&gt; or &lt;code&gt;Ctrl+H&lt;/code&gt; / &lt;code&gt;Ctrl+L&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Update: Panes are now grouped by tmux session in the header, making it easier to navigate when you have many panes across different sessions. Cross-session navigation is also available via &lt;code&gt;Ctrl+Cmd+H&lt;/code&gt; / &lt;code&gt;Ctrl+Cmd+L&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Status detection has been refined. For Claude Code, unitmux reads the pane title for idle markers and spinner characters, and parses recent pane output for waiting prompts and choices. Codex status detection uses its own heuristics, such as &lt;code&gt;Working&lt;/code&gt;, &lt;code&gt;Thinking&lt;/code&gt;, &lt;code&gt;Executing&lt;/code&gt;, and &lt;code&gt;enter to send&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;unitmux also detects panes running the &lt;code&gt;ai&lt;/code&gt; wrapper command in addition to &lt;code&gt;claude&lt;/code&gt; and &lt;code&gt;codex&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Git Operations in a Popup
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Ctrl+G&lt;/code&gt; opens a Git operations popup.&lt;/p&gt;

&lt;p&gt;It only covers simple operations, but when you want to commit frequently during the early stages of personal development, being able to do it seamlessly is a real advantage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5tlyaeuyrmtmztqbbrh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe5tlyaeuyrmtmztqbbrh.png" alt="git operations popup" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Stage all changes&lt;/li&gt;
&lt;li&gt;Select individual files with Space&lt;/li&gt;
&lt;li&gt;Stage selected files with Enter&lt;/li&gt;
&lt;li&gt;Type a commit message and press Enter&lt;/li&gt;
&lt;li&gt;Push with &lt;code&gt;Ctrl+P&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The popup supports vim-style navigation with &lt;code&gt;j&lt;/code&gt; / &lt;code&gt;k&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Being able to commit right when the AI finishes a chunk of work, without going back to the terminal, is quietly satisfying.&lt;/p&gt;

&lt;p&gt;Update: The Git popup now displays the current branch name in its header and shows detailed Git status: modified files, untracked files, deleted files, and so on. It also auto-refreshes pane detail after each operation and shows success/error feedback that auto-dismisses after 2 seconds.&lt;/p&gt;

&lt;h3&gt;
  
  
  Git Diff Viewer
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Ctrl+F&lt;/code&gt; opens a Git diff viewer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghjtqjw64dtk08rr6lm8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fghjtqjw64dtk08rr6lm8.png" alt="git diff viewer" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is separate from the Git operations popup. The Git popup is for staging, committing, and pushing. The diff viewer is for quickly checking what changed.&lt;/p&gt;

&lt;p&gt;It supports:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Unstaged / staged diff switching&lt;/li&gt;
&lt;li&gt;File sidebar&lt;/li&gt;
&lt;li&gt;Directory folding&lt;/li&gt;
&lt;li&gt;Collapsible file sections&lt;/li&gt;
&lt;li&gt;Hunk navigation&lt;/li&gt;
&lt;li&gt;Vim-style scrolling&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Useful keys:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;j&lt;/code&gt; / &lt;code&gt;k&lt;/code&gt;: scroll&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;d&lt;/code&gt; / &lt;code&gt;u&lt;/code&gt;: half-page scroll&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;g&lt;/code&gt; / &lt;code&gt;G&lt;/code&gt;: top / bottom&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;]c&lt;/code&gt; / &lt;code&gt;[c&lt;/code&gt;: next / previous hunk&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;s&lt;/code&gt;: toggle staged / unstaged&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;q&lt;/code&gt;: close&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This makes it easier to review AI-generated changes without switching back to the terminal to run &lt;code&gt;git diff&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Semi-Transparent Window to Overlay on Your Editor
&lt;/h3&gt;

&lt;p&gt;You can adjust the window opacity between 50% and 100% with a slider.&lt;/p&gt;

&lt;p&gt;Combined with Always on Top, you can see through to your editor's code while giving instructions to the AI.&lt;/p&gt;

&lt;p&gt;You can keep an eye on Claude or Codex activity while reading code.&lt;/p&gt;

&lt;p&gt;Pair this with &lt;code&gt;Cmd+Shift+H&lt;/code&gt; and you can shift focus to the app, write a prompt or pick a choice, all without touching the mouse.&lt;/p&gt;

&lt;h3&gt;
  
  
  View Current Session Content
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Ctrl+P&lt;/code&gt; lets you check the session conversation without looking at the terminal.&lt;/p&gt;

&lt;p&gt;When you just want to see what question was asked or glance at the last answer, this lets you quickly check and move on to the next prompt.&lt;/p&gt;

&lt;p&gt;When the agent runs, it produces a lot of log output, but usually what you actually want to see is the final conclusion. Being able to quickly check just the part you care about and move right into the next prompt is the real benefit.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq7flki6nc9cjeo5nqtm3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq7flki6nc9cjeo5nqtm3.png" alt="live preview overlay" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Update: The preview overlay now has two modes.&lt;/p&gt;

&lt;p&gt;The first press of &lt;code&gt;Ctrl+P&lt;/code&gt; shows a static snapshot. Pressing &lt;code&gt;Ctrl+P&lt;/code&gt; again while the overlay is open switches to live streaming mode, which polls pane content every 500ms and shows a &lt;code&gt;LIVE&lt;/code&gt; badge.&lt;/p&gt;

&lt;p&gt;Vim-style navigation is available inside the preview:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;j&lt;/code&gt; / &lt;code&gt;k&lt;/code&gt;: line scroll&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;d&lt;/code&gt; / &lt;code&gt;u&lt;/code&gt;: half-page scroll&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;g&lt;/code&gt; / &lt;code&gt;G&lt;/code&gt;: top / bottom&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When available, unitmux also supplements tmux pane output with Claude's JSONL conversation history under &lt;code&gt;~/.claude&lt;/code&gt;, so older conversation context is easier to inspect.&lt;/p&gt;

&lt;h3&gt;
  
  
  Image Attachment
&lt;/h3&gt;

&lt;p&gt;Images can be attached from the &lt;code&gt;+&lt;/code&gt; button or by dragging and dropping them onto the window.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq7gtva2j8kg0ug3mhtdo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq7gtva2j8kg0ug3mhtdo.png" alt="image attachment" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thumbnails are displayed in unitmux, and the image paths are sent to the AI CLI using bracketed paste so the CLI can detect them as image inputs.&lt;/p&gt;

&lt;p&gt;This is useful when you want to ask about screenshots, UI states, diagrams, or local image files without manually typing paths into the terminal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Compact Mode
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Ctrl+W&lt;/code&gt; shrinks the window to a minimal bar of about 70px height.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsb9vizq6jcropmnkspz6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsb9vizq6jcropmnkspz6.png" alt="compact mode" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is useful when you want unitmux to stay visible without taking up screen space.&lt;/p&gt;

&lt;p&gt;Expanding back restores the previous window size and position. The shortcut key is customizable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Session Detail Overlay
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Ctrl+D&lt;/code&gt; shows detailed information about the selected pane:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fet907shnqo9bk31vo7i0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fet907shnqo9bk31vo7i0.png" alt="session detail overlay" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Model name&lt;/li&gt;
&lt;li&gt;Session ID&lt;/li&gt;
&lt;li&gt;Git branch&lt;/li&gt;
&lt;li&gt;Git status&lt;/li&gt;
&lt;li&gt;Working directory&lt;/li&gt;
&lt;li&gt;Pane dimensions&lt;/li&gt;
&lt;li&gt;Start command&lt;/li&gt;
&lt;li&gt;PID / tty&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It also includes a close button with a confirmation dialog to terminate the pane.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create New Session
&lt;/h3&gt;

&lt;p&gt;unitmux can create new Claude or Codex sessions from the UI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1etlqsk8bsjw2ykqinp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo1etlqsk8bsjw2ykqinp.png" alt="create new session dialog" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are two workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Ctrl+N&lt;/code&gt;: quickly add a Claude session to the current tmux session&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Ctrl+Shift+N&lt;/code&gt;: open a dialog to create a new tmux session or add a Claude/Codex window to an existing session&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In the dialog, you can select the target tmux session and choose between &lt;code&gt;claude&lt;/code&gt; and &lt;code&gt;codex&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Shell Mode
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Ctrl+B&lt;/code&gt; toggles shell mode.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cd0znnut0n6p5op04ga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1cd0znnut0n6p5op04ga.png" alt="shell mode" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In shell mode, unitmux sends input to a dedicated &lt;code&gt;unitmux-shell&lt;/code&gt; tmux window instead of the selected AI pane.&lt;/p&gt;

&lt;p&gt;The shell pane is created on demand and uses your default shell. If it is manually closed, unitmux recreates it on the next send or preview.&lt;/p&gt;

&lt;p&gt;Preview and live streaming also work for shell output.&lt;/p&gt;

&lt;p&gt;This is handy when you want to run quick commands near your AI sessions without switching back to the terminal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sidebar Settings Panel
&lt;/h3&gt;

&lt;p&gt;A dedicated settings panel is accessible from the header, offering:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2lotdyb74hvmvd2pclq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2lotdyb74hvmvd2pclq.png" alt="sidebar settings and slash commands" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Always on Top toggle&lt;/li&gt;
&lt;li&gt;Opacity slider&lt;/li&gt;
&lt;li&gt;Theme switch: dark / light&lt;/li&gt;
&lt;li&gt;Send key config: &lt;code&gt;Enter&lt;/code&gt; or &lt;code&gt;Cmd+Enter&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Vim mode toggle&lt;/li&gt;
&lt;li&gt;Font size control&lt;/li&gt;
&lt;li&gt;Customizable shortcut keys for compact, preview, detail, Git, diff, and focus&lt;/li&gt;
&lt;li&gt;Choice modifier: &lt;code&gt;Ctrl&lt;/code&gt; or &lt;code&gt;Cmd&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Slash command manager&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Slash Commands &amp;amp; Skills Integration
&lt;/h3&gt;

&lt;p&gt;Type &lt;code&gt;/&lt;/code&gt; in the input area to filter and select from registered commands.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2lotdyb74hvmvd2pclq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff2lotdyb74hvmvd2pclq.png" alt="slash commands and skills" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;User-defined slash commands can be managed in the Sidebar. You can create, edit, and delete reusable commands such as &lt;code&gt;/fix&lt;/code&gt;, &lt;code&gt;/review&lt;/code&gt;, or &lt;code&gt;/test&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;In addition, unitmux auto-discovers skill commands from:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;~/.claude/skills/&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;.claude/skills/&lt;/code&gt; in the selected project&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It parses &lt;code&gt;SKILL.md&lt;/code&gt; files for names and descriptions and shows them as read-only slash command candidates.&lt;/p&gt;

&lt;h3&gt;
  
  
  Input History
&lt;/h3&gt;

&lt;p&gt;The last 10 unique inputs are stored.&lt;/p&gt;

&lt;p&gt;Navigate with &lt;code&gt;↑&lt;/code&gt; / &lt;code&gt;↓&lt;/code&gt; in the textarea.&lt;/p&gt;

&lt;p&gt;Your current draft is preserved when navigating up and restored when you come back down.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vim Mode
&lt;/h3&gt;

&lt;p&gt;When enabled, unitmux sends &lt;code&gt;Escape&lt;/code&gt; followed by &lt;code&gt;i&lt;/code&gt; before your text to enter insert mode.&lt;/p&gt;

&lt;p&gt;This is useful if you've accidentally left the pane in normal mode while using Claude CLI's vim editor mode.&lt;/p&gt;

&lt;p&gt;This is skipped when responding to choices, since single digit choices work directly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Help Overlay
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;Ctrl+,&lt;/code&gt; opens a quick reference for keyboard shortcuts, organized by category.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7b15rf91euhqoaloj38.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7b15rf91euhqoaloj38.png" alt="help overlay" width="800" height="488"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It supports the same vim-style scrolling as other overlays.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installation &amp;amp; First Launch
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;brew &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;--cask&lt;/span&gt; yugo-ibuki/tap/unitmux
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you'd rather install from DMG, grab it from Releases.&lt;/p&gt;

&lt;p&gt;If you see a Gatekeeper warning on first launch, go to:&lt;/p&gt;

&lt;p&gt;System Settings → Privacy &amp;amp; Security → Open Anyway&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing Thoughts
&lt;/h2&gt;

&lt;p&gt;I built this for people who use AI coding assistants in tmux and wanted to simplify the world of "too many terminal windows."&lt;/p&gt;

&lt;p&gt;The guiding principle was "simple, then simpler."&lt;/p&gt;

&lt;p&gt;No unnecessary mouse operations. Everything is designed to work with Vim-like keybindings so it feels natural to operate.&lt;/p&gt;

&lt;p&gt;Rather than trying to replace tmux or become a full terminal manager, unitmux focuses on making prompt input and agent monitoring as low-effort as possible.&lt;/p&gt;

&lt;p&gt;tmux is still the base. unitmux just strips away the context switches around it.&lt;/p&gt;

&lt;p&gt;Feedback and PRs are very welcome.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/yugo-ibuki/unitmux" rel="noopener noreferrer"&gt;https://github.com/yugo-ibuki/unitmux&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A star would be really motivating!&lt;/p&gt;

&lt;h2&gt;
  
  
  Notes
&lt;/h2&gt;

&lt;p&gt;Mac is the primary supported platform.&lt;/p&gt;

&lt;p&gt;Linux builds exist, but Linux support has not been verified thoroughly, so please keep that in mind.&lt;/p&gt;

&lt;p&gt;Also, since I primarily use Claude Code, there may still be gaps in Codex support.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>claudecode</category>
      <category>codex</category>
      <category>tmux</category>
    </item>
    <item>
      <title>Share Claude-created Documents Across Worktrees with dot-claude-sync</title>
      <dc:creator>Ugo</dc:creator>
      <pubDate>Sun, 16 Nov 2025 10:47:12 +0000</pubDate>
      <link>https://dev.to/ugo/share-claude-created-documents-across-worktrees-with-dot-claude-sync-cpc</link>
      <guid>https://dev.to/ugo/share-claude-created-documents-across-worktrees-with-dot-claude-sync-cpc</guid>
      <description>&lt;h1&gt;
  
  
  About dot-claude-sync
&lt;/h1&gt;

&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A Go-based CLI tool to synchronize &lt;code&gt;.claude&lt;/code&gt; directories across multiple projects/worktrees&lt;/li&gt;
&lt;li&gt;Flexible sync strategies with group management and priority system&lt;/li&gt;
&lt;li&gt;Dramatically improves Claude Code workflow in git worktree environments&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;My workflow with Claude Code involves having it create investigation documents and TODO lists first, which I then review before having it write code. I want these documents to be within the project so I don't have to open a separate editor to view them.&lt;/p&gt;

&lt;p&gt;However, placing them in the project root causes them to appear in git diffs, and setting up global ignore is cumbersome. Additionally, placing them at the root risks polluting Claude's context with unnecessary prompts. That's when I discovered the &lt;code&gt;.claude&lt;/code&gt; folder - a directory that Claude doesn't automatically read.&lt;/p&gt;

&lt;p&gt;I tried organizing documents in &lt;code&gt;.claude&lt;/code&gt; and found it worked well. For example, when fixing a dashboard, I create a folder like &lt;code&gt;.claude/custom-documents/dashboard-fix-XXX&lt;/code&gt; to consolidate all task-related content there.&lt;/p&gt;

&lt;p&gt;When working with Claude Code, you often save useful prompts, skills, and project context in the &lt;code&gt;.claude&lt;/code&gt; directory.&lt;/p&gt;

&lt;p&gt;However, when developing with git worktrees across multiple branches, &lt;code&gt;.claude&lt;/code&gt; isn't synced between worktrees since it's gitignored.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;dot-claude-sync&lt;/strong&gt; was developed to solve this problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background and Challenges
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using .claude with Claude Code
&lt;/h3&gt;

&lt;p&gt;When developing with Claude Code, it's useful to save the following in the &lt;code&gt;.claude&lt;/code&gt; directory as documentation:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Task-specific prompts&lt;/li&gt;
&lt;li&gt;Frequently used skills and commands&lt;/li&gt;
&lt;li&gt;Implementation specifications and TODO lists&lt;/li&gt;
&lt;li&gt;Project context information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are &lt;strong&gt;not managed by git&lt;/strong&gt; (gitignored), allowing you to maintain Claude-specific long-term context without polluting the repository.&lt;/p&gt;

&lt;p&gt;While you can share with your team, individual documentation quality varies, and unorganized growth leads to context pollution.&lt;/p&gt;

&lt;p&gt;Therefore, it's better to manage personal documents individually and share skills through &lt;a href="https://code.claude.com/docs/plugins" rel="noopener noreferrer"&gt;Plugins&lt;/a&gt; on the marketplace.&lt;/p&gt;

&lt;h3&gt;
  
  
  Git Worktree Challenges
&lt;/h3&gt;

&lt;p&gt;Issues arise when using git worktrees:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;my-project/
├── main/           &lt;span class="c"&gt;# Main worktree&lt;/span&gt;
│   └── .claude/
│       └── prompts/useful-prompt.md
├── feature-a/      &lt;span class="c"&gt;# feature-a worktree&lt;/span&gt;
│   └── .claude/    &lt;span class="c"&gt;# Empty!&lt;/span&gt;
└── feature-b/      &lt;span class="c"&gt;# feature-b worktree&lt;/span&gt;
    └── .claude/    &lt;span class="c"&gt;# Empty!&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;Even if initially synced, &lt;code&gt;.claude&lt;/code&gt; contents diverge as you work across worktrees&lt;/li&gt;
&lt;li&gt;Each worktree requires separate setup&lt;/li&gt;
&lt;li&gt;Manual copying of useful prompts between worktrees&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  dot-claude-sync Solution
&lt;/h2&gt;

&lt;p&gt;dot-claude-sync manages projects through &lt;strong&gt;groups&lt;/strong&gt; and controls sync strategy with a &lt;strong&gt;priority system&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Basic Usage
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. Installation
&lt;/h4&gt;

&lt;p&gt;&lt;strong&gt;Go install&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;go &lt;span class="nb"&gt;install &lt;/span&gt;github.com/yugo-ibuki/dot-claude-sync@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Short alias version (&lt;code&gt;dcs&lt;/code&gt; command) also available&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;go &lt;span class="nb"&gt;install &lt;/span&gt;github.com/yugo-ibuki/dot-claude-sync/cmd/dcs@latest
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After installation, you can use the &lt;code&gt;dot-claude-sync&lt;/code&gt; command (or &lt;code&gt;dcs&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;:::message&lt;br&gt;
&lt;code&gt;$GOPATH/bin&lt;/code&gt; (usually &lt;code&gt;~/go/bin&lt;/code&gt;) must be in your PATH.&lt;br&gt;
:::&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build from source&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/yugo-ibuki/dot-claude-sync.git
&lt;span class="nb"&gt;cd &lt;/span&gt;dot-claude-sync
go build                    &lt;span class="c"&gt;# Generates dot-claude-sync binary&lt;/span&gt;
go build &lt;span class="nt"&gt;-o&lt;/span&gt; dcs ./cmd/dcs   &lt;span class="c"&gt;# Generates dcs alias binary&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  2. Initial Setup (Interactive)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dot-claude-sync init
&lt;span class="c"&gt;# or short version&lt;/span&gt;
dcs init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Running this command starts an interactive setup:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Enter group name&lt;/strong&gt;: Choose a name for your project group (e.g., &lt;code&gt;my-app&lt;/code&gt;, &lt;code&gt;web-projects&lt;/code&gt;)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Enter project paths&lt;/strong&gt;: Input paths to &lt;code&gt;.claude&lt;/code&gt; directories to sync

&lt;ul&gt;
&lt;li&gt;Multiple paths supported (empty line to finish)&lt;/li&gt;
&lt;li&gt;Relative paths with &lt;code&gt;~&lt;/code&gt; supported&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Auto-create config file&lt;/strong&gt;: Creates &lt;code&gt;~/.config/dot-claude-sync/config.yaml&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Example execution&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;dot-claude-sync init
Enter group name: my-app
Enter project paths &lt;span class="o"&gt;(&lt;/span&gt;empty line to finish&lt;span class="o"&gt;)&lt;/span&gt;:
Path 1: ~/projects/my-app/main/.claude
Path 2: ~/projects/my-app/feature-a/.claude
Path 3: ~/projects/my-app/feature-b/.claude
Path 4: &lt;span class="o"&gt;[&lt;/span&gt;Enter]

Configuration file created: ~/.config/dot-claude-sync/config.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  3. Auto-detect Worktrees (Optional)
&lt;/h4&gt;

&lt;p&gt;Instead of manual path entry, use the &lt;code&gt;detect&lt;/code&gt; command to auto-detect worktrees:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dot-claude-sync detect ~/projects/my-app &lt;span class="nt"&gt;--group&lt;/span&gt; my-app
&lt;span class="c"&gt;# or&lt;/span&gt;
dcs detect ~/projects/my-app &lt;span class="nt"&gt;--group&lt;/span&gt; my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Runs &lt;code&gt;git worktree list&lt;/code&gt; to detect worktrees&lt;/li&gt;
&lt;li&gt;Checks if &lt;code&gt;.claude&lt;/code&gt; directory exists in each worktree&lt;/li&gt;
&lt;li&gt;Automatically adds to config file if found&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4. View Configuration
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dot-claude-sync list
&lt;span class="c"&gt;# or&lt;/span&gt;
dcs list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;View current configuration showing group names and project paths.&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Run Sync
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dot-claude-sync push my-app
&lt;span class="c"&gt;# or&lt;/span&gt;
dcs push my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Syncs &lt;code&gt;.claude&lt;/code&gt; directories across all projects in the specified group.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Safe execution (dry-run mode)&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dot-claude-sync push my-app &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;span class="c"&gt;# or&lt;/span&gt;
dcs push my-app &lt;span class="nt"&gt;--dry-run&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Previews what will happen without actually copying files. Recommended for first run with &lt;code&gt;--dry-run&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuration File Example
&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;~/.config/dot-claude-sync/config.yaml&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;groups&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;my-app&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;paths&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;main&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/projects/my-app/main/.claude&lt;/span&gt;
      &lt;span class="na"&gt;feature-a&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/projects/my-app/feature-a/.claude&lt;/span&gt;
      &lt;span class="na"&gt;feature-b&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/projects/my-app/feature-b/.claude&lt;/span&gt;
    &lt;span class="na"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;  &lt;span class="c1"&gt;# Highest priority (master configuration)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Running &lt;code&gt;dot-claude-sync push my-app&lt;/code&gt; with this configuration:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Collects files from all project &lt;code&gt;.claude&lt;/code&gt; directories&lt;/li&gt;
&lt;li&gt;When duplicate filenames exist, uses file from highest priority project (main)&lt;/li&gt;
&lt;li&gt;Distributes collected files to all projects&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Key Features
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔍 detect - Auto-detect Worktrees
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dot-claude-sync detect ~/projects/my-app &lt;span class="nt"&gt;--group&lt;/span&gt; my-app
&lt;span class="c"&gt;# or&lt;/span&gt;
dcs detect ~/projects/my-app &lt;span class="nt"&gt;--group&lt;/span&gt; my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Batch adds multiple worktree &lt;code&gt;.claude&lt;/code&gt; directories to configuration in git worktree environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Runs &lt;code&gt;git worktree list&lt;/code&gt; in specified directory&lt;/li&gt;
&lt;li&gt;Checks if &lt;code&gt;.claude&lt;/code&gt; directory exists in each detected worktree&lt;/li&gt;
&lt;li&gt;Automatically adds to config file (&lt;code&gt;~/.config/dot-claude-sync/config.yaml&lt;/code&gt;) if found&lt;/li&gt;
&lt;li&gt;Uses worktree branch name as alias (e.g., &lt;code&gt;main&lt;/code&gt;, &lt;code&gt;feature-a&lt;/code&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Benefits&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No manual entry of worktree paths&lt;/li&gt;
&lt;li&gt;Quick response to worktree configuration changes (add/remove)&lt;/li&gt;
&lt;li&gt;Reduces typo and path error risks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Example execution&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Detect worktrees in ~/projects/my-app and add to my-app group&lt;/span&gt;
dcs detect ~/projects/my-app &lt;span class="nt"&gt;--group&lt;/span&gt; my-app

&lt;span class="c"&gt;# After execution, config.yaml is auto-updated:&lt;/span&gt;
&lt;span class="c"&gt;# groups:&lt;/span&gt;
&lt;span class="c"&gt;#   my-app:&lt;/span&gt;
&lt;span class="c"&gt;#     paths:&lt;/span&gt;
&lt;span class="c"&gt;#       main: ~/projects/my-app/main/.claude&lt;/span&gt;
&lt;span class="c"&gt;#       feature-a: ~/projects/my-app/feature-a/.claude&lt;/span&gt;
&lt;span class="c"&gt;#       feature-b: ~/projects/my-app/feature-b/.claude&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Use cases&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quick setup of worktree environment in new project&lt;/li&gt;
&lt;li&gt;Update configuration when adding new worktree to existing project&lt;/li&gt;
&lt;li&gt;Easy reproduction of same worktree structure by team members&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  📤 push - Run Sync
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dcs push my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Collects &lt;code&gt;.claude&lt;/code&gt; files from all projects in group and distributes based on priority.&lt;/p&gt;

&lt;h3&gt;
  
  
  💾 backup - Create Backup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dcs backup my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Creates timestamped backups of &lt;code&gt;.claude&lt;/code&gt; directories for all projects in group.&lt;br&gt;
Backups are saved to &lt;code&gt;~/.local/share/dot-claude-sync/backups/&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use cases&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Safety before first sync&lt;/li&gt;
&lt;li&gt;Protection before major changes&lt;/li&gt;
&lt;li&gt;Regular backup operations&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  🗑️ rm - Batch Delete
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dcs &lt;span class="nb"&gt;rm &lt;/span&gt;my-app prompts/old-prompt.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Deletes specified file from all projects in group.&lt;/p&gt;
&lt;h3&gt;
  
  
  📝 mv - Batch Rename
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dcs &lt;span class="nb"&gt;mv &lt;/span&gt;my-app old-name.md new-name.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Renames/moves files in all projects in group.&lt;/p&gt;
&lt;h3&gt;
  
  
  ⚙️ config - Configuration Management
&lt;/h3&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Add group&lt;/span&gt;
dcs config add-group new-group

&lt;span class="c"&gt;# Add project&lt;/span&gt;
dcs config add-project my-app feature-c ~/projects/my-app/feature-c/.claude

&lt;span class="c"&gt;# Set priority&lt;/span&gt;
dcs config set-priority my-app main feature-a feature-b feature-c
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Edit configuration file directly from command line.&lt;/p&gt;
&lt;h2&gt;
  
  
  Command Aliases
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;dot-claude-sync&lt;/code&gt; and &lt;code&gt;dcs&lt;/code&gt; provide identical functionality. Both aliases work for all commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# These work exactly the same&lt;/span&gt;
dot-claude-sync init
dcs init

dot-claude-sync push my-app
dcs push my-app

dot-claude-sync list
dcs list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;dcs&lt;/code&gt; is recommended for daily use due to its shorter length.&lt;/p&gt;

&lt;h2&gt;
  
  
  Use Cases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Case 1: Quick Worktree Environment Setup
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Auto-detect and add worktree .claude directories&lt;/span&gt;
dcs detect ~/projects/my-app &lt;span class="nt"&gt;--group&lt;/span&gt; my-app

&lt;span class="c"&gt;# Create backup (for safety)&lt;/span&gt;
dcs backup my-app

&lt;span class="c"&gt;# Start syncing immediately&lt;/span&gt;
dcs push my-app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Case 2: Distribute Shared Configuration
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;groups&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;web-projects&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;paths&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;shared&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/projects/shared-config/.claude&lt;/span&gt;  &lt;span class="c1"&gt;# Shared config master&lt;/span&gt;
      &lt;span class="na"&gt;frontend&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/projects/frontend/.claude&lt;/span&gt;
      &lt;span class="na"&gt;backend&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/projects/backend/.claude&lt;/span&gt;
    &lt;span class="na"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;shared&lt;/span&gt;  &lt;span class="c1"&gt;# Highest priority&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Distribute shared project settings to all projects&lt;/span&gt;
dcs push web-projects
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Case 3: Client Project Template Management
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;groups&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;clients&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;paths&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;template&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/templates/client/.claude&lt;/span&gt;
      &lt;span class="na"&gt;client-a&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/clients/a/.claude&lt;/span&gt;
      &lt;span class="na"&gt;client-b&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/clients/b/.claude&lt;/span&gt;
    &lt;span class="na"&gt;priority&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;template&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Deploy template project settings to each client project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Global Options
&lt;/h2&gt;

&lt;p&gt;All commands support the following options:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nt"&gt;--config&lt;/span&gt; &amp;lt;path&amp;gt;   &lt;span class="c"&gt;# Specify configuration file path&lt;/span&gt;
&lt;span class="nt"&gt;--dry-run&lt;/span&gt;         &lt;span class="c"&gt;# Preview execution (no actual changes)&lt;/span&gt;
&lt;span class="nt"&gt;--verbose&lt;/span&gt;         &lt;span class="c"&gt;# Output detailed logs&lt;/span&gt;
&lt;span class="nt"&gt;--force&lt;/span&gt;           &lt;span class="c"&gt;# Skip confirmation prompts&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Usage examples&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Safe confirmation with dry-run&lt;/span&gt;
dcs push my-app &lt;span class="nt"&gt;--dry-run&lt;/span&gt;

&lt;span class="c"&gt;# Execute with detailed logs&lt;/span&gt;
dcs push my-app &lt;span class="nt"&gt;--verbose&lt;/span&gt;

&lt;span class="c"&gt;# Use custom configuration file&lt;/span&gt;
dcs push my-app &lt;span class="nt"&gt;--config&lt;/span&gt; ~/custom-config.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Summary
&lt;/h2&gt;

&lt;p&gt;dot-claude-sync is a small tool that improves Claude Code workflow in git worktree environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recommended for&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Users working with git worktrees&lt;/li&gt;
&lt;li&gt;Those wanting shared .claude settings across multiple projects&lt;/li&gt;
&lt;li&gt;Anyone looking to streamline prompt and skill management&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're interested, please give it a try!&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub: &lt;a href="https://github.com/yugo-ibuki/dot-claude-sync" rel="noopener noreferrer"&gt;https://github.com/yugo-ibuki/dot-claude-sync&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Installation:

&lt;ul&gt;
&lt;li&gt;Main: &lt;code&gt;go install github.com/yugo-ibuki/dot-claude-sync@latest&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Alias: &lt;code&gt;go install github.com/yugo-ibuki/dot-claude-sync/cmd/dcs@latest&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>tooling</category>
      <category>claude</category>
      <category>document</category>
    </item>
    <item>
      <title>CVE Search Tools</title>
      <dc:creator>Ugo</dc:creator>
      <pubDate>Sun, 29 Sep 2024 06:34:51 +0000</pubDate>
      <link>https://dev.to/ugo/cve-search-tools-44oe</link>
      <guid>https://dev.to/ugo/cve-search-tools-44oe</guid>
      <description>&lt;h2&gt;
  
  
  API
&lt;/h2&gt;

&lt;h3&gt;
  
  
  National Vulnerability Database (NVD) API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://nvd.nist.gov/developers/vulnerabilities" rel="noopener noreferrer"&gt;NVD Vulnerabilities&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;NIST (National Institute of Standards and Technology)&lt;/td&gt;
&lt;td&gt;API key required, usage restrictions apply&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Official and highly reliable&lt;/li&gt;
&lt;li&gt;Provides both CVSSv2 and v3 scores&lt;/li&gt;
&lt;li&gt;Free to use&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-YYYY-XXXXXXX&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  CIRCL CVE Search API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.circl.lu/services/cve-search/" rel="noopener noreferrer"&gt;CIRCL CVE Search&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;CIRCL (Computer Incident Response Center Luxembourg)&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open source, can be self-hosted&lt;/li&gt;
&lt;li&gt;Provides both CVSSv2 and v3 scores&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://cve.circl.lu/api/cve/CVE-YYYY-XXXXXXX&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Vulners API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://vulners.com/docs/api_reference/api/" rel="noopener noreferrer"&gt;Vulners API&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Vulners&lt;/td&gt;
&lt;td&gt;Paid plans available, limited free usage possible&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Extensive vulnerability database&lt;/li&gt;
&lt;li&gt;Provides CVSSv2 and v3 scores&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://vulners.com/api/v3/search/lucene/?query=CVE-YYYY-XXXXXXX&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Red Hat Security Data API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://docs.redhat.com/en/documentation/red_hat_security_data_api/1.0" rel="noopener noreferrer"&gt;Red Hat Security Data API&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Red Hat&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Specialized in CVEs related to Red Hat products&lt;/li&gt;
&lt;li&gt;Provides CVSSv2 and v3 scores&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://access.redhat.com/labs/securitydataapi/cve/CVE-YYYY-XXXXXXX.json&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  MITRE CVE API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://cve.mitre.org/cve/search_cve_list.html" rel="noopener noreferrer"&gt;MITRE CVE Search&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;MITRE Corporation&lt;/td&gt;
&lt;td&gt;CVSS scores often not included&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Official source of CVE data&lt;/li&gt;
&lt;li&gt;Provides basic CVE information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-YYYY-XXXXXXX&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  VulDB API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://vuldb.com/?kb.api" rel="noopener noreferrer"&gt;VulDB API&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;VulDB&lt;/td&gt;
&lt;td&gt;Paid service&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides extensive vulnerability information&lt;/li&gt;
&lt;li&gt;Includes CVSS scores, affected products, and remediation information&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://vuldb.com/?kb.api&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Shodan API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://developer.shodan.io/api" rel="noopener noreferrer"&gt;Shodan API&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Shodan&lt;/td&gt;
&lt;td&gt;Primarily paid, limited free plan available&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides vulnerability information for internet-connected devices&lt;/li&gt;
&lt;li&gt;Offers information on actual vulnerable systems associated with CVEs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://api.shodan.io/shodan/host/CVE-YYYY-XXXXXXX&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  OpenCVE API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/opencve/opencve" rel="noopener noreferrer"&gt;OpenCVE API&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;OpenCVE (Open source project)&lt;/td&gt;
&lt;td&gt;Community-driven project&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Collects and provides CVE information as an API&lt;/li&gt;
&lt;li&gt;Can be self-hosted&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://opencve.io/api/cve/CVE-YYYY-XXXXXXX&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  NIST National Checklist Program Repository API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://nvd.nist.gov/ncp/repository" rel="noopener noreferrer"&gt;NIST NCP Repository&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;NIST&lt;/td&gt;
&lt;td&gt;Rich in information related to U.S. government systems&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides security configuration checklists and CVE information&lt;/li&gt;
&lt;li&gt;Focuses on U.S. government systems&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://nvd.nist.gov/ncp/repository/CVE-YYYY-XXXXXXX&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Cybersecurity and Infrastructure Security Agency (CISA) API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.cisa.gov/known-exploited-vulnerabilities-catalog" rel="noopener noreferrer"&gt;CISA API&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;U.S. Cybersecurity and Infrastructure Security Agency&lt;/td&gt;
&lt;td&gt;No specific restrictions mentioned, but it's recommended to check before use&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides vulnerability information related to critical infrastructure&lt;/li&gt;
&lt;li&gt;Focuses on CVEs deemed important from the U.S. government perspective&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://www.cisa.gov/known-exploited-vulnerabilities-catalog&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  ExploitDB API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.exploit-db.com" rel="noopener noreferrer"&gt;ExploitDB API&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Offensive Security&lt;/td&gt;
&lt;td&gt;No specific restrictions mentioned, but it's recommended to check before use&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides information on publicly available exploit code and related CVEs&lt;/li&gt;
&lt;li&gt;Aimed at penetration testers and security researchers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://www.exploit-db.com/api&lt;/code&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Rapid7 Open Data API
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://opendata.rapid7.com/" rel="noopener noreferrer"&gt;Rapid7 Open Data API&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Rapid7&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Provides data on vulnerabilities, attacks, and other security-related information&lt;/li&gt;
&lt;li&gt;Offers detailed technical information related to CVEs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Endpoint Example&lt;/strong&gt;&lt;br&gt;
&lt;code&gt;https://opendata.rapid7.com/&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  OSS
&lt;/h2&gt;

&lt;h3&gt;
  
  
  OpenCVE
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/opencve/opencve" rel="noopener noreferrer"&gt;OpenCVE&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;opencve&lt;/td&gt;
&lt;td&gt;v1 will soon be closed, and v2 will be released&lt;/td&gt;
&lt;td&gt;~1800&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OSS for collecting, analyzing, and displaying CVE information&lt;/li&gt;
&lt;li&gt;Provides Web interface and REST API&lt;/li&gt;
&lt;li&gt;Written in Python&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  CVE-Search
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/cve-search/cve-search" rel="noopener noreferrer"&gt;CVE-Search&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;cve-search&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;~2300&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Imports CVE, CPE, and CWE data and makes it searchable&lt;/li&gt;
&lt;li&gt;Uses MongoDB to store data&lt;/li&gt;
&lt;li&gt;Written in Python, provides Web interface and API&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Dependency-Track
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/DependencyTrack/dependency-track" rel="noopener noreferrer"&gt;Dependency-Track&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;DependencyTrack&lt;/td&gt;
&lt;td&gt;No specific restrictions mentioned, but it's recommended to check before use&lt;/td&gt;
&lt;td&gt;~2600&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Component analysis platform for software supply chain&lt;/li&gt;
&lt;li&gt;Provides vulnerability data including CVE information&lt;/li&gt;
&lt;li&gt;Written in Java&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  nvdtools
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/facebookincubator/nvdtools" rel="noopener noreferrer"&gt;nvdtools&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Facebook&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vulnerability database written in Go&lt;/li&gt;
&lt;li&gt;Parses NVD data and provides it in a user-friendly format&lt;/li&gt;
&lt;li&gt;Offers both CLI tools and libraries&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  OWASP Dependency-Check
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/jeremylong/DependencyCheck" rel="noopener noreferrer"&gt;OWASP Dependency-Check&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Individual&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;~6300&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scans project dependencies and detects known vulnerabilities&lt;/li&gt;
&lt;li&gt;Uses NVD database&lt;/li&gt;
&lt;li&gt;Written in Java but supports many languages and build tools&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  Grype
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/anchore/grype" rel="noopener noreferrer"&gt;Grype&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Anchore&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;~8500&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Vulnerability scanner for container images and filesystems&lt;/li&gt;
&lt;li&gt;Uses multiple vulnerability databases&lt;/li&gt;
&lt;li&gt;Written in Go&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  VulnerableCode
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Official Website&lt;/th&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;th&gt;Stars&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://github.com/nexB/vulnerablecode" rel="noopener noreferrer"&gt;VulnerableCode&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Individual&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;~500&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Aggregates vulnerability data from multiple sources&lt;/li&gt;
&lt;li&gt;Provides REST API and Web UI&lt;/li&gt;
&lt;li&gt;Written in Python/Django&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Thinking of how we should follow AI.</title>
      <dc:creator>Ugo</dc:creator>
      <pubDate>Sun, 19 May 2024 06:32:34 +0000</pubDate>
      <link>https://dev.to/ugo/thinking-of-how-we-should-follow-ai-3e19</link>
      <guid>https://dev.to/ugo/thinking-of-how-we-should-follow-ai-3e19</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;The emergence of GitHub Copilot Workspace (GCW) is expected to have a significant impact on the future of engineering work. Even the introduction of GitHub Copilot, a plugin that offers AI-powered code suggestions, has already brought substantial changes, which is evident from its current usage.&lt;/p&gt;

&lt;p&gt;I have my own thoughts on this matter and would like to share them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Background Information about GCW
&lt;/h2&gt;

&lt;p&gt;For example, suppose you want to prepare some mock data. Ordinarily, you would have to painstakingly create arrays, generate data, and consider the content of the mock data by yourself. However, with GitHub Copilot, you can simply write a comment like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Describe data that fits the following content:
// - Number of data: 100
// - Data structure: {name: string, age: number, address: string}
// - Names should be fictional general names
// - Ages should be random numbers between 20 and 50
// - Addresses should be real addresses but up to the city level
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copilot will then automatically generate 100 data points that meet your specifications. You can also easily modify the generated data by simply providing a comment like "change this and that, and recreate the data with these changes" to the data generated above, and it will regenerate it for you.&lt;/p&gt;

&lt;p&gt;This reduces the human workload to less than one-tenth. Additionally, providing specifications generates corresponding code and tests, showcasing a significant shift in engineering work.&lt;/p&gt;

&lt;p&gt;According to GitHub Articles that say GCW is evolving even further, it is said to go beyond code-level and data creation, understanding the context of the project and creating code.&lt;/p&gt;

&lt;p&gt;For example, you can create an issue with specifications and GCW will generate code that meets those specifications and even allow you to check its functionality. We can expect it to be quite powerful, if you actually use it once.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Future of Engineering Work
&lt;/h2&gt;

&lt;p&gt;So, how will the work of engineers change as a result of these developments? I believe that the job of an engineer will not disappear, but the definition of the job will change.&lt;/p&gt;

&lt;p&gt;The current work of engineers like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defining specifications&lt;/li&gt;
&lt;li&gt;Writing code&lt;/li&gt;
&lt;li&gt;Ensuring quality&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This will transform dramatically to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Determine the direction of the product&lt;/li&gt;
&lt;li&gt;Breaking down into specifications&lt;/li&gt;
&lt;li&gt;Having AI make adjustments and works with the prompt you write&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;However, the problem here is, how far should we go with these revisions and specifications?, what level of engineering skills are required to do so?, and where can these skills be acquired?&lt;/p&gt;

&lt;p&gt;From the current perspective, everything is unknown. The way we work will change drastically.&lt;/p&gt;

&lt;p&gt;For now, if you want to consider API interfaces, you need to enforce those interfaces with libraries, and you also need to consider library selection and need to think of how you should operate it. To make these decisions, you need operational experience and experience with failures.&lt;/p&gt;

&lt;p&gt;However, if you use AI (GCW), the interfaces will not be operated by us. If they are misoperated, it means that the specifications are wrong. In other words, there is no need to think about a mechanism to enforce them. Even if you manage interfaces with documents, AI can complement them so that there are no omissions or mistakes in changes.&lt;/p&gt;

&lt;p&gt;Today, there are still many experienced engineers and the AI era has just begun, so there are many people with a refined sense of direction and land sense. However, in 3-4 years, a new generation of engineers who do not need this sense of direction will emerge. In 10 years, more engineering skills have rusted because they were no longer needed.&lt;/p&gt;

&lt;p&gt;The definition of an engineer will shift from “an engineer checks what AI generates” to a new role. While some may think that the job of engineers will not disappear because they will verify AI outputs, the skills needed to judge whether these outputs are correct.&lt;/p&gt;

&lt;p&gt;Currently, we manage with the wisdom of those without AI, but people who have a kind of experience will gradually disappear and those kind of experiences become unnecessary. Finally, a new definition of engineering will emerge.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Many engineers say they are afraid of their jobs being taken over by AI.&lt;/p&gt;

&lt;p&gt;I am one of them.&lt;/p&gt;

&lt;p&gt;I have tried to put into words my thoughts on where that fear comes from.&lt;/p&gt;

&lt;p&gt;Not only engineers but everyone will face unknown world in the future. The year 2023 seems to have become a turning point for this world. We need to think about what skills will be required for  this new world and what abilities we should pass on to the next generation, and adapt our work styles accordingly.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>career</category>
    </item>
  </channel>
</rss>
