이전 글

홈으로
  • AgentCLIHub Development Notes 3: Per-CLI Model, Reasoning, and Permission Settings

    AI-generated conceptual illustration of per-CLI settings. 한국어 버전 / Read in Korean This article explains the code at fixed commit 46dfca2. It does not report runtime testing or performance measurements in an actual environment. Bringing several AI CLIs into one window makes it tempting to reduce their settings to a handful of shared options. Yet the values and launch options behind familiar names such as “model” and “permissions” differ. Agent CLI Hub shares the UI structure while keeping each CLI's setting values and their meanings separate. 1. How a shared input field creates invalid combinations A model alias selected for Claude cannot be assumed to be valid when passed directly to Codex. Overwriting a shared model value every time the user switches CLIs also creates the problem of restoring the previous settings when they switch back. Settings has separate fields for ClaudeModel , CodexModel , and AntigravityModel . Reasoning effort and executable paths are also stored separ...

  • AgentCLIHub 개발 노트 3: 모델·추론 강도·권한을 CLI별로 나누는 설정 설계

    CLI별 설정을 표현한 AI 생성 일러스트입니다. Read in English / 영문 버전 이 글은 고정 커밋 46dfca2 기준의 코드 해설입니다. 실제 환경에서의 실행 시험이나 성능 측정 결과는 포함하지 않습니다. 여러 AI CLI를 한 화면에 모으면 설정도 공통 항목 몇 개로 정리하고 싶어집니다. 하지만 같은 ‘모델’이나 ‘권한’이라는 이름 아래 실제로 받는 값과 실행 옵션은 다릅니다. Agent CLI Hub는 화면 구성을 공유하면서 각 CLI의 설정값과 의미를 따로 유지합니다. 1. 공통 입력칸 하나가 만드는 잘못된 조합 Claude에서 선택한 모델 별칭을 그대로 Codex에 전달하면 유효한 모델이라고 기대할 수 없습니다. CLI를 바꿀 때마다 공용 모델 값을 덮어쓰면, 다른 CLI로 돌아왔을 때 이전 설정을 복구하는 문제도 생깁니다. Settings 는 ClaudeModel , CodexModel , AntigravityModel 을 별도 필드로 둡니다. 추론 강도와 실행 파일 경로도 각각 분리합니다. CliProfile 은 자신에게 해당하는 필드 이름과 값을 제공하고, 명령행을 만들 때도 그 CLI의 필드만 읽습니다. 이때 마지막으로 선택한 CLI를 기억하는 LastBackend 는 새로운 대화 선택 창의 초기 위치를 정합니다. 이미 열려 있는 모든 탭을 다른 CLI로 바꾸는 전역 스위치는 아닙니다. 사용자는 같은 창에서 서로 다른 CLI를 열고, 각각에 저장한 옵션을 사용할 수 있습니다. 설정 필드 , CLI별 설정 참조 2. 화면과 저장 검증이 같은 표를 읽는다 설정 UI의 선택지와 C#의 허용 목록을 별도로 관리하면 한쪽만 바뀔 수 있습니다. 화면에서는 고를 수 있는데 저장할 때 지워지거나, 저장은 되지만 CLI가 받지 않는 값이 전달되는 상황입니다. Agent CLI Hub는 CliCatalog 에 모델, 추론 강도, 권한 항목을 모읍니다. ForUi 는 표시 이름, 설정 키, 선택지, 모델별 추론 강도 등을 화면에 전달합니다...

  • AgentCLIHub Development Notes 2: Finding Installed CLIs on Windows

    AI-generated illustration of Windows CLI path discovery. 한국어로 읽기 / Korean version This article explains the code at fixed commit 46dfca2, reviewed on October 17, 2026. It does not report runtime tests or performance measurements. codex can run in PowerShell while a GUI application on the same computer fails to find its executable. The two processes may have different PATH values and command-resolution environments. Agent CLI Hub’s discovery code determines both where a CLI is located and how to launch it. 1. Why a discovery result contains more than a path Alongside the executable path and discovery source, CliLocator.Result stores the Node executable, JavaScript entry point, PowerShell path, and whether to load a PowerShell profile. Even after locating a command, the launch method depends on whether it is a native program, an npm wrapper, or a function defined in a shell profile. For example, finding claude.cmd does not necessarily mean executing that file directly. If the asso...

  • AgentCLIHub 개발 노트 2: 설치돼 있는데 못 찾는 CLI, Windows 실행 경로 탐지

    Windows CLI 경로 탐지 과정을 표현한 AI 생성 일러스트입니다. Read in English / 영문 버전 이 글은 2026년 10월 17일에 확인한 고정 커밋 46dfca2 기준의 코드 해설입니다. 실제 환경에서의 실행 시험이나 성능 측정 결과는 포함하지 않습니다. PowerShell에서는 codex 가 실행되는데 GUI 앱에서는 실행 파일을 찾지 못할 수 있습니다. 같은 컴퓨터에서도 두 프로세스가 보는 PATH와 명령 해석 환경이 다르기 때문입니다. Agent CLI Hub의 탐지 코드는 파일 위치뿐 아니라 어떤 경로로 실행해야 하는지도 함께 구합니다. 1. 탐지 결과에 경로만 담지 않는 이유 CliLocator.Result 에는 실행 경로와 발견 출처 외에 Node 실행 파일, JavaScript 진입점, PowerShell 경로, 프로필 사용 여부가 들어 있습니다. 실행 대상을 찾은 다음에도 네이티브 프로그램인지, npm 래퍼인지, 셸 프로필의 함수인지에 따라 시작 방식이 달라지기 때문입니다. 예를 들어 claude.cmd 를 찾았다고 해서 그 파일을 반드시 그대로 실행하는 것은 아닙니다. 연결된 JavaScript 진입점과 Node를 찾으면 두 경로로 명령의 앞부분을 만듭니다. PowerShell 함수로 등록된 CLI라면 명령 이름과 프로필을 사용하는 셸 정보가 결과가 됩니다. 따라서 Found 는 탐지 결과가 있다는 의미로 읽어야 합니다. 실제 실행 성공이나 로그인 완료까지 증명하는 값은 아닙니다. 탐지와 기동을 구분하면 “파일을 못 찾았다”와 “찾았지만 시작하지 못했다”를 다른 단계에서 다룰 수 있습니다. 탐지 결과와 실행 명령 2. 우선순위를 먼저 정한다 탐지의 출발점은 사용자가 설정한 경로입니다. 환경변수를 펼치고 경로를 정규화한 뒤 파일이 존재하면 이 값을 사용합니다. 지정 경로가 유효하지 않으면 자동 탐색을 계속합니다. 그다음 순서는 CLI에 따라 다릅니다. Codex는 먼저 PowerShell의 Get-Command...

  • AgentCLIHub Development Notes 1: Bringing Multiple AI CLIs into One Window with ConPTY and xterm.js

    한국어로 읽기 AgentCLIHub Development Notes · 01 / 10

  • AgentCLIHub 개발 노트 1: ConPTY와 xterm.js로 여러 AI CLI를 한 창에 모으기

    Read in English AgentCLIHub 개발 노트 · 01 / 10

  • FileSharer Development Notes 10 — From Executable to Installer: Distribution Is a Feature Too

    한국어로 읽기 FileSharer Development Notes · 10 / 10

  • FileSharer 개발 노트 10 — 실행 파일에서 설치 프로그램까지, 배포도 하나의 기능이다

    Read this article in English FileSharer 개발 노트 · 10 / 10

  • FileSharer Development Notes 9 — Restoring the Share List After a Restart

    FileSharer Development Notes · 09 / 10 한국어 버전

  • FileSharer 개발 노트 9 — 프로그램을 다시 켰을 때 공유 목록을 되살리는 방법

    FileSharer 개발 노트 · 09 / 10 English version

  • FileSharer Development Notes 8 — What a ‘Download Complete’ Log Entry Actually Means

    FileSharer Development Notes · 08 / 10 한국어로 읽기

  • FileSharer 개발 노트 8 — ‘다운로드 완료’ 로그가 실제로 뜻하는 것

    FileSharer 개발 노트 · 08 / 10 Read in English

  • FileSharer Development Notes 7 — An External Sharing URL Does Not Mean the Connection Is Ready

    FileSharer Development Notes · 07 / 10 한국어로 읽기

  • FileSharer 개발 노트 7 — 외부 공유 주소를 받았다고 연결이 끝난 것은 아니다

    FileSharer 개발 노트 · 07 / 10 Read in English

  • FileSharer Development Notes 6 — Checking QR Code Limits in Bytes, Not Characters

    FileSharer Development Notes · 06 / 10 한국어 버전

  • FileSharer 개발 노트 6 — QR 코드의 한계를 글자 수가 아닌 바이트로 확인하기

    FileSharer 개발 노트 · 06 / 10 English version

  • FileSharer Development Notes 5 — Designing a Cache to Avoid Rebuilding Folder ZIPs

    한국어로 읽기 FileSharer Development Notes · 05 / 10

  • FileSharer 개발 노트 5 — 폴더 ZIP을 매번 만들지 않기 위한 캐시 설계

    Read in English FileSharer 개발 노트 · 05 / 10

  • FileSharer Development Notes 4 — Range Boundaries When Resuming a Download

    한국어 버전 FileSharer Development Notes · 04 / 10

  • FileSharer 개발 노트 4 — 끊긴 다운로드를 이어받는 Range의 경계값

    English version FileSharer 개발 노트 · 04 / 10