본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 20. 01:29

potatoqualitee/aitools

요약

aitools는 Claude Code, Aider, Gemini CLI 등 다양한 AI 코딩 어시스턴트를 PowerShell에서 스크립트화할 수 있도록 돕는 래퍼(wrapper) 모듈입니다. 이를 통해 코드 리팩터링, 마이그레이션, 문서화와 같은 작업을 일괄 처리(Batch-process)하고 자동화할 수 있습니다.

핵심 포인트

  • Claude Code, Aider, Gemini CLI 등 여러 AI CLI 도구를 하나의 일관된 인터페이스로 통합 관리
  • PowerShell 파이프라인을 활용한 파일 단위의 일괄 작업 및 자동화 지원
  • 각 파일마다 새로운 세션을 시작하여 대화 드리프트(conversation drift) 없는 일관된 결과 보장
  • 병렬 처리, 자동 재시도 로직, 변경 사항 추적 등 대규모 작업에 최적화된 기능 제공

AI CLI 에디터로 코드를 일괄 처리(Batch-process)하세요.

aitools는 Claude Code, Aider, Gemini CLI, GitHub Copilot CLI와 같은 AI 코딩 어시스턴트(AI coding assistants)를 래핑(wrap)하는 PowerShell 모듈입니다. 이 도구들은 이러한 AI 도구들을 PowerShell을 통해 스크립트화할 수 있게 함으로써 코드 리팩터링 (refactoring), 마이그레이션 (migrations), 문서화 (documentation) 작업을 자동화합니다.

aitools는 에이전틱 CLI 도구 (agentic CLI tools) — 실제로 코드를 읽고, 이해하고, 다시 작성하는 AI 어시스턴트 — 를 래핑하여 PowerShell을 통해 스크립트 작성이 가능하도록 만듭니다. 모든 실행은 대화 드리프트 (conversation drift) 없이 새로 시작되므로, 일관된 출력만을 제공합니다.

30초 만에 시작하기:

# 모듈 설치
Install-Module aitools
# Claude 설치
...

aitools는 PowerShell의 예측 가능성을 제공하는 동시에 AI 조정 (AI coordination), 파일 입출력 (file I/O), 변경 사항 추적 (change tracking)을 처리합니다.

각 AI CLI는 서로 다른 플래그 (flags), 설치 단계 및 특이 사항을 가지고 있습니다. 100개의 파일을 처리하려면 IDE에서 각 파일을 일일이 클릭하거나, CLI가 변경될 때마다 깨지는 셸 스크립트 (shell scripts)를 작성해야 합니다. 저는 래퍼 (wrapper)를 만들었고 이를 공유하기로 했습니다.

주요 기능:

  • 여러 AI CLI에 걸친 하나의 일관된 인터페이스
  • 간단한 일괄 작업 (batch operations): 파일을 파이프 (pipe)로 입력하고 결과를 출력
  • 설치, 업데이트 및 구성 (configuration) 관리
  • 커밋 (commit) 전 검토를 위한 변경 사항 추적

각 파일은 새로운 세션에서 처리되므로, 대화 드리프트 (conversation drift) 없이 일관된 출력을 보장합니다. 병렬 처리 (Parallel processing), 자동 재시도 로직 (automatic retry logic), 이미 수정된 파일을 건너뛰는 기능은 대규모 작업에 실용적입니다.

  • PowerShell 3 이상
  • Windows, Linux 또는 macOS

Install-Module aitools -Scope CurrentUser

원하는 AI 어시스턴트를 선택하세요:

# 하나 설치
Install-AITool -Name Claude
# 특정 버전 설치
...

기본적으로 도구들은 관리자 권한 없이 사용자 로컬 디렉토리 (CurrentUser 범위)에 설치됩니다. Linux에서는 선택적으로 시스템 전체에 설치할 수 있습니다:

# 사용자 로컬 설치 (기본값, sudo 불필요)
Install-AITool -Name Aider -Scope CurrentUser
# 시스템 전체 설치 (Linux에서 sudo 필요)
...

-Scope LocalMachine을 사용할 때

Linux에서:

  • 필요한 경우 sudo 비밀번호를 입력하라는 메시지가 표시됩니다.
  • 필수 구성 요소(Node.js, pipx)는 apt-get을 통해 설치됩니다.
  • 도구를 시스템의 모든 사용자가 사용할 수 있습니다.

macOS에서는 Homebrew가 sudo 없이 설치를 처리하므로, 두 범위(scope) 모두 권한 상승 없이 작동합니다.

Set-AIToolDefault -Tool Claude

이제 별도로 지정하지 않는 한 모든 aitools 명령은 Claude를 사용합니다.

Get-ChildItem ./tests/*.Tests.ps1 | Update-PesterTest

Pester v4 테스트를 v5 구문으로 업데이트하며, BeforeAll/AfterAll 블록, Context/Describe 변경 사항 및 매개변수 유효성 검사를 처리합니다.

Get-ChildItem ./public/*.ps1 |
Invoke-AITool -Prompt "Add complete comment-based help with 3 examples"
Get-ChildItem *.ps1 -Recurse |
Invoke-AITool -Prompt "Apply One True Brace Style formatting"

Invoke-AITool -Path ./script.ps1 -Prompt "Optimize this" -Tool All

설치된 모든 AI 도구를 통해 동일한 작업을 실행하고 결과를 비교합니다.

# 복잡한 리팩터링 (Complex refactoring): 깊은 이해를 위해 Claude 사용
Get-ChildItem src\*.ps1 | Invoke-AITool -Tool Claude -Prompt ./prompts/refactor-dependency-injection.md
# 대규모 리팩터링 (Large-scale refactoring): 방대한 컨텍스트(전체 코드베이스 인식)를 위해 Gemini 사용
...
도구 (Tool)최적 용도 (Best For)가격 (Pricing)상태 (Status)
Claude복잡한 리팩터링 (Complex refactoring), 아키텍처 변경구독 (Subscription)✅ 지원됨
Gemini CLI방대한 컨텍스트 (Massive context, 1M 토큰), 멀티모달 (Multimodal)무료 + 유료✅ 지원됨
Copilot빠른 작업, 블로그 업데이트, GitHub 워크플로무료 + 유료✅ 지원됨
Aider신뢰할 수 있는 차이점(diffs), 빠른 반복 (fast iteration)무료 + 유료✅ 지원됨
Codex CLI빠른 처리, 비전 (vision) 지원구독 (Subscription)✅ 지원됨
Cursor AIIDE 통합무료 + 유료✅ 지원됨
Ollama오프라인 사용, 완전 무료무료✅ 지원됨
PSOpenAI이미지/비디오/오디오 생성사용량 기반 결제 (Pay-per-use)✅ 지원됨

Claude는 심도 있는 코드 이해가 필수적인 복잡한 리팩터링 (Refactoring) 및 아키텍처 변경에 탁월하지만, 400행이 넘는 파일에서는 어려움을 겪을 수 있습니다.

Gemini 3는 100만 토큰의 방대한 컨텍스트 윈도우 (Context Window)를 통해 복잡한 리팩터링을 처리하며, 한 세션에서 전체 대규모 코드베이스를 처리할 수 있게 해줍니다. 멀티모달 이해 (Multimodal understanding: 코드, 이미지, 비디오, 오디오)에 강점이 있으며 관대한 무료 티어를 제공합니다.

Copilot은 블로그 업데이트, T-SQL 케이스 변환, 메타데이터 수정 또는 빠른 콘텐츠 교정과 같이 빠르고 집중적인 작업에 빛을 발합니다.

Ollama는 API 비용 없이 완전히 오프라인으로 실행됩니다.

참고: PSOpenAI는 PowerShell 모듈 래퍼 (Wrapper, CLI 아님)로, 에이전트형 도구 (Agentic tools)가 아직 지원하지 않는 이미지 편집, 비디오 생성 및 텍스트 음성 변환 (Text-to-speech) 기능을 제공합니다.

도구 이름 변경: v1.0.5부터 단순화를 위해 ClaudeCodeClaude로, GitHubCopilotCopilot으로 이름이 변경되었습니다. 이전 이름은 하위 호환성을 위해 여전히 별칭 (Alias)으로 작동합니다.

aitools의 대부분은 에이전트형 CLI 도구 (Agentic CLI tools) — 코드를 읽고, 이해하고, 다시 작성하는 AI 어시스턴트 — 를 래핑하지만, 이미지/비디오/오디오 생성 및 편집을 위한 PSOpenAI도 포함되어 있습니다.

API 래퍼 (PSOpenAI와 같은 유형)에이전트형 CLI 도구 (Claude Code와 같은 유형)
프롬프트 (Prompt) 전송, 텍스트/미디어 수신파일 열기, 코드 이해, 편집 수행
......

CLI 도구가 아직 제공하지 못하는 이미지 편집 및 생성 기능을 위해 PSOpenAI 지원이 포함되어 있습니다.

모든 aitools 작업은 동일한 패턴을 따릅니다:

입력 (Input) - 파일과 프롬프트 제공
처리 (Processing) - AI가 읽고, 이해하고, 편집
검토 (Review) - 차이점 (Diffs)을 확인하고 유지 또는 폐기 결정

이는 수동 코드 리뷰 (Manual code review)를 반영하면서도 수백 개의 파일로 확장 가능합니다.

다음 항목들을 제공할 수 있습니다:

인라인 프롬프트 (Inline prompts): 명령줄에서 즉시 실행하는 빠른 지침
프롬프트 파일 (Prompt files): 상세한 지침이 담긴 재사용 가능한 .md 파일
컨텍스트 파일 (Context files): 참조 문서, 스타일 가이드, API 사양

세 가지를 모두 사용한 예시:

$params = @{
Path = "./src/*.ps1"
PromptFilePath = "./prompts/api-migration.md"
...

AI는 무엇을 할지에 대한 프롬프트 (Prompt)와 어떻게 할지에 대한 컨텍스트 (Context)를 읽고, 각 파일을 그에 따라 처리합니다.

BurntToast 모듈은 Windows 알림 API를 래핑 (Wrap)합니다. Microsoft가 Windows 10에서 Windows 11 API로 업데이트했을 때, 이 모듈은 여러 파일에 걸쳐 리팩터링 (Refactoring)이 필요했습니다.

$params = @{
Path = "./burnttoast/*.ps1"
PromptFilePath = "./prompts/api-upgrade.md"
...

이 과정은 네임스페이스 (Namespace) 변경, XML 속성 이름 변경, 레이아웃 차이점을 처리하여 모듈 전체를 자동으로 리팩터링했습니다.

dbatools.io 블로그는 깨진 링크, 지원 중단된 (Deprecated) 명령, 오래된 스크린샷, 그리고 만료된 Twitter 임베드 (Embed)를 수정하기 위해 체계적인 업데이트가 필요했습니다. 이는 단순한 기계적 찾아바꾸기가 아닌 판단력이 필요한 작업이었습니다.

요구 사항 (Requirements):

  • 깨진 링크를 수정하되 역사적 맥락은 보존할 것
  • 의미를 유지하면서 Twitter/X 임베드 제거
  • PowerShell 스크린샷을 Hugo 쇼트코드 (Shortcode)로 변환
  • 지원 중단된 (Deprecated) 명령 이름 업데이트
  • 가독성을 위해 스플래팅 (Splatting) 고려 (단, 맹목적으로 적용하지 말 것)
  • 저자의 어조와 역사적 정확성 유지

해결 방법 (Solution):

Set-AIToolDefault -Tool Claude
Get-ChildItem *.md | Invoke-AITool -Prompt ./prompts/audit-blog.md

모든 뉘앙스를 인코딩한 300줄 분량의 프롬프트를 사용하여, Claude는 수백 개의 포스트를 처리하며 전 과정에서 판단을 내렸습니다:

  • 죽은 링크를 테스트하고 교체
  • Twitter 임베드를 의역된 문장으로 변환
  • 스크린샷에서 명령어를 추출하여 쇼트코드로 변환
  • 명확성이 향상되는 경우에만 스플래팅 (Splatting) 적용
  • 역사적 맥락을 보존하면서 지원 중단된 (Deprecated) 참조 업데이트

이는 에이전틱 CLI (Agentic CLIs)가 무엇을 잘하는지 보여줍니다: 복잡한 요구 사항을 읽고, 컨텍스트를 유지하며, 대규모로 판단력을 발휘하는 것입니다.

AI 비전 (Vision)을 사용하여 PDF를 이미지로 변환하고 구조화된 데이터를 추출합니다:

# PDF를 이미지로 변환하고 데이터를 JSON으로 추출
$params = @{
Tool = "Claude"
...

ConvertTo-AITImage

첫 사용 시 pdf2img를 자동으로 설치하며, PDF를 AI 비전 모델에 최적화된 PNG 이미지로 변환합니다. 단일 .json 파일을 전달하면

파일을 컨텍스트 (context)로 전달하면, aitools는 AI가 ConvertFrom-Json을 통해 직접 파싱할 수 있도록 마크다운 구분자(markdown fences)가 없는 순수 JSON (raw JSON)을 반환하도록 자동으로 지시합니다.

무료 티어 (Free Tier) 예시: 데이터 추출 및 SQL Server에 쓰기

GPT-5-mini가 포함된 Copilot의 무료 티어를 사용하여 구조화된 데이터를 추출하고 데이터베이스에 직접 기록할 수 있습니다:

$params = @{
Tool = "Copilot"
Model = "gpt-5-mini"
...

팁: 무료 티어 모델은 일관성이 없을 수 있습니다. 최소한의 비용으로 신뢰할 수 있는 결과를 얻으려면, 1,000회 호출당 $0.33인 Claude Haiku 4.5 (claude-haiku-4-5)를 사용하십시오. 구조화된 추출 (structured extraction) 작업에서 놀라운 성능을 보여줍니다. GPT-5-mini는 최고의 무료 옵션이며, 이 작업에는 GPT-4.1 사용을 피하십시오.

모델이 추가 데이터를 반환하는 경우, JSON 객체를 필터링하십시오:

# "immunization"을 포함하는 레코드만 필터링
... | ConvertFrom-Json | Where-Object { $PSItem -match "immunization" }
# 파이프라인 친화적: FileInfo 객체를 반환
$images = Get-ChildItem *.pdf | ConvertTo-AITImage
# 품질과 파일 크기 간의 절충을 위해 DPI 조정
...

이미지 분석 및 코드 생성 (Codex, Claude, Gemini)

비전 (Vision) 기능이 있는 도구들은 이미지를 분석하고 시각적 입력에 기반하여 코드를 생성할 수 있습니다:

# -Attachment 파라미터 사용
Invoke-AITool -Tool Codex -Attachment design.png -Prompt "Create a Hugo website using colors from this design"
# 이미지 파일을 직접 파이핑 (Codex는 이를 첨부 파일로 처리함)
...

-Attachment 파라미터는 일반적인 이미지 형식 (PNG, JPG, GIF 등)과 함께 작동합니다. Codex는 파이핑된 이미지 파일을 자동으로 첨부 파일 (attachments)로 취급하는 반면, 다른 비전 기능 도구들은 이를 일반 파일로 분석합니다.

이미지 편집 및 생성 (PSOpenAI)

PSOpenAI는 CLI 도구들이 아직 지원하지 않는 직접적인 이미지 조작 (image manipulation) 기능을 제공합니다:

# PSOpenAI 설치 및 구성
Install-AITool -Name PSOPenAI
Initialize-AITool -Tool PSOPenAI
...

주요 차이점:

Codex(및 기타 vision 기능이 있는 CLI 도구): 이미지를 분석하고 이를 조작하기 위한 코드/스크립트를 작성합니다.
PSOpenAI: OpenAI의 이미지 API 엔드포인트를 통해 이미지를 직접 편집하거나 생성합니다.

인증 (Authentication): PSOpenAI는 OpenAI API 키가 필요합니다. $env:OPENAI_API_KEY를 설정하거나, 구성 지침을 확인하려면 Initialize-AITool -Tool PSOPenAI를 실행하세요.

지원되는 모델(Claude, Aider, Codex, Cursor)에 대해 더 깊은 추론 (Reasoning) 기능을 활성화합니다:

# Claude: 확장된 사고 토큰 (extended thinking tokens)을 트리거합니다
Invoke-AITool -Path complex.ps1 -Tool Claude -ReasoningEffort high
# Codex: OpenAI의 o1/o3 추론 (reasoning) 모델을 사용합니다
...

추론 노력 (Reasoning effort) 수준: low, medium, high. 복잡한 리팩터링 (Refactoring) 또는 아키텍처 변경에 가장 적합합니다.

# 기본 모델 설정
Set-AIToolConfig -Tool Claude -Model claude-sonnet-4-5
# 기본 추론 노력 설정
...

Aider 출력 구성 (Aider Output Configuration)

기본적으로 Aider는 현재 디렉토리에 히스토리 및 메타데이터 파일(.aider.input.history, .aider.chat.history.md, .aider.model.settings.yml, .aider.model.metadata.json, .aiderignore, .env)을 생성합니다. aitools는 이를 자동으로 정리되는 임시 디렉토리로 리다이렉션(Redirect)합니다.

Aider의 히스토리 및 메타데이터 파일을 보존하려면 사용자 정의 출력 디렉토리를 구성하세요:

Set-AIToolConfig -Tool Aider -AiderOutputDir "C:\AiderHistory"

이렇게 하면 작업 디렉토리를 어지럽히지 않고 모든 Aider 출력 파일을 한 곳에 유지할 수 있습니다.

기본적으로 4개 이상의 파일을 처리할 때, Invoke-AITool은 최대 3개의 동시 스레드(Concurrent threads)로 병렬 실행합니다:

# 파일을 병렬로 처리합니다 (4개 이상의 파일에 대한 기본값)
Get-ChildItem src\*.ps1 | Invoke-AITool -Prompt "Add error handling"
# 순차적 처리를 강제합니다
...

결과는 완료되는 대로 스트림 (Stream) 형태로 제공되어 실시간 피드백을 제공합니다.

일시적인 오류 (타임아웃, 속도 제한 (Rate limits), 서버 오류)는 누적 지연 시간이 4시간을 초과할 때까지 2, 4, 8, 16, 32, 64분의 간격으로 자동 재시도됩니다:

기본값: 자동 재시도 활성화됨

Get-ChildItem src*.ps1 | Invoke-AITool -Prompt "Refactor code"

재시도 비활성화 - 오류 발생 시 즉시 중단

...

이미 변경된 파일은 건너뛰어 중단된 배치 작업 (batch operations)을 재개합니다:

# 커밋되지 않았거나, 스테이징(staged)되었거나, 푸시(pushed)되지 않은 변경 사항이 있는 파일은 건너뜀
Get-ChildItem src\*.ps1 | Invoke-AITool -Prompt "Add error handling" -SkipModified
# main 브랜치에 있는 경우, 마지막 10개의 커밋을 확인하여 수정된 파일 탐색
...

Rate limits (속도 제한)에 도달하거나 배치 작업 도중 오류를 수정하고 재개할 때 유용합니다.

# 처음 5개의 파일만 처리
Get-ChildItem tests\*.Tests.ps1 | Invoke-AITool -Prompt "Fix bugs" -First 5
# 처음 2개의 파일을 건너뛰고, 다음 3개의 파일을 처리
...

프롬프트 (prompt)를 디버깅하거나 전체 배치 처리 전 일부 파일로 테스트할 때 유용합니다.

API 호출을 시간적으로 분산시키기 위해 파일 처리 사이에 지연 (delay)을 추가합니다:

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub Codex tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0