# AX Copilot

키보드 하나로 모든 업무를 제어하는 사내 전용 AI 런처

백승재 · AX연구소 AI팀 · SW Architect

## 1. 왜 만들었는가

업무 중 가장 많이 반복하는 동작이 뭐냐고 물으면, 대부분의 사무직 직원이 이렇게 대답합니다:

- 앱을 찾아서 실행하기
- 파일을 찾아서 열기
- 클립보드에서 복사한 내용 다시 찾기
- 계산기 열고 간단한 계산하기
- AI에게 질문하려면 브라우저 열고 별도 서비스 접속하기

이 모든 동작에 마우스를 들고, 탐색기를 열고, 클릭하고… 키보드에서 손을 뗄 수가 없습니다.

AX Copilot은 이 문제를 해결합니다. Alt+Space 한 번으로 모든 것을 키보드로 제어할 수 있는 런처이자, AI 대화(AX Agent)까지 통합된 사내 전용 업무 도우미입니다.

이 프로젝트는 LLM(Claude)과 함께 기획부터 구현까지 진행한 사례로, AI와 협업하는 소프트웨어 개발의 실제 경험을 담고 있습니다.

## 2. AX Copilot이란?

Alt+Space를 누르면 화면 상단에 깔끔한 런처 창(AX Commander)이 나타납니다. 여기에 원하는 명령을 입력하면 됩니다.

- 앱 이름을 치면 앱이 실행됩니다 (한국어 초성 검색도 가능!)
- `=` 를 치면 계산기가 됩니다
- `#` 을 치면 클립보드 히스토리가 나타납니다
- `cap region` 을 치면 영역 캡처가 시작됩니다
- `win chrome` 을 치면 크롬 창으로 즉시 전환됩니다
- `!` 을 치면 AI 대화(AX Agent)가 열립니다

프리픽스(접두어) 기반으로 45개 이상의 명령어를 지원하며, 한국어 초성 검색(ㅅㄷ → 설정)과 퍼지 매칭이 됩니다.

## 3. 핵심 기능 소개

AX Copilot은 단순한 앱 런처가 아닙니다. 아래는 카테고리별 주요 기능입니다.

### AI 대화 — AX Agent NEW v1.0.5

- `!` 예약어로 AI 대화 창 진입
- 4종 LLM 지원: Ollama, vLLM(OpenAI 호환), Gemini, Claude API
- 스트리밍 + 타이핑 효과: SSE 기반 실시간 응답, 12ms 타이머로 타이핑 애니메이션
- 마크다운 + 코드 구문 강조: 10개 언어 키워드 하이라이팅, 코드 블록 복사 버튼
- 토큰 사용량: k/m 단위 실시간 표시 + 응답 소요시간
- 프롬프트 카드: 미리 설정된 시스템 프롬프트 + 사용자 정의 템플릿
- 대화 관리: 고정/이름변경/분류(6종)/삭제, 날짜별 그룹, 30일 자동 정리
- 메시지 편집: 사용자 메시지 편집/복사, 좋아요/싫어요 피드백

### 검색

- 퍼지 검색: 앱/파일명을 일부만 입력해도 찾아줌
- 한국어 초성: ㅇㅎㄴ → 아한글 검색
- 실행 빈도 학습: 자주 쓰는 앱이 상단으로
- 기본 앱 별칭: 메모장, 계산기, 엑셀 등 한글+영문 즉시 실행
- 폴더 검색: 인덱스 경로의 하위 폴더도 검색 가능

### 계산 · 변환

- `= sqrt(144)`, `= 0xFF + 1`, `= 100km in miles`
- `= 100 USD to KRW` (실시간 환율)
- `date +30d` (30일 후 날짜), `date unix` (타임스탬프)

### 클립보드

- `#` 히스토리: 복사 이력 검색 · 재사용 · 병합 (Shift+↑↓ 선택 → Shift+Enter 병합)
- `$` 변환: JSON 정렬, Base64, URL 인코딩 등 12종
- `pipe` 파이프라인: `pipe upper > trim > b64e` (19종 필터 체이닝)
- `batch` 일괄 처리: 줄번호, 정렬, 중복제거, 감싸기 등 14종
- DPAPI 암호화: 클립보드 히스토리 파일이 현재 Windows 계정에서만 복호화 가능

### 개발자 도구

- `json` format / minify / validate
- `encode` base64 / url / sha256
- `color #FF5500` → HEX/RGB/HSL/HSV 4종 변환
- `port 3000` → 점유 프로세스 확인
- `env PATH` → 환경변수 검색
- `pick` → 스포이드로 화면 색상 HEX 코드 추출 (돋보기 + 실시간 미리보기)
- `diff` → 클립보드 최근 2개 또는 파일 2개 비교
- `stats` → 텍스트 통계 (글자수/단어수/읽기시간/키워드 빈도)

### 화면 캡처

- `cap region` / `window` / `scroll` / `screen` (사용 빈도순 정렬)
- 지연 캡처: Shift+Enter → 3초/5초/10초 타이머 후 캡처 NEW
- 스크롤 캡처: 활성 창을 끝까지 스크롤하며 페이지 전체 캡처
- 글로벌 단축키(PrintScreen 등) 지원
- 보안: 클립보드에만 복사 (파일 저장은 설정에서 선택)

### 창 관리 · 시스템

- `~save` / `~restore`: 창 배치 스냅샷
- `snap left/right/full`: 창 분할 레이아웃
- `win`: 열린 창 검색 → 즉시 전환 (Alt+Tab 대체)
- `/lock`, `/timer 5m`, `/alarm 14:30`
- `svc`: Windows 서비스 관리 + 클립보드 강제 재시작
- `monitor`: CPU·메모리·디스크·가동시간 실시간 모니터링

### 업무 자동화

- `journal`: 오늘 사용한 앱/명령어 기반 업무 일지 마크다운 자동 생성
- `routine`: 출근/퇴근 루틴 등록 → 한 번에 실행
- `scaffold`: 프로젝트 폴더 구조 템플릿 일괄 생성
- `rename`: 파일 일괄 이름 변경 (순번/날짜 템플릿)
- `fav`: 자주 쓰는 파일·폴더 즐겨찾기

### 키보드 단축키 16종

단축키 | 기능
--- | ---
F1 | 도움말
Ctrl+K | 단축키 도움말
Ctrl+H / R / B | 히스토리 / 최근 파일 / 즐겨찾기
Ctrl+1~9 | N번째 항목 즉시 실행
Ctrl+Enter | 관리자 권한 실행
Shift+Enter | Large Type / 병합 실행 / 지연 캡처
→ (화살표) | 파일 액션 모드 (경로복사/탐색기/터미널 등 7종)
Delete | 항목 제거 (확인 다이얼로그)

## 4. 보안 — 사내 전용 원칙

AX Copilot은 사내 전용 프로그램으로, 외부 네트워크 통신을 원칙적으로 하지 않습니다.

- 외부 HTTP/HTTPS 호출 금지 — HttpClient, WebClient 등 사용 불가 (AI 서비스는 사내 Ollama/vLLM 연동)
- 클립보드 히스토리 — Windows DPAPI 암호화 (CurrentUser 범위)
- API 키 보호 — AES-256-CBC 암호화 모드 지원 (설정으로 전환 가능)
- 화면 캡처 — 클립보드에만 복사, 파일 저장은 사용자 설정에서 선택
- 시스템 명령 — 재시작/종료 등 위험 명령 실행 전 2단계 확인 다이얼로그
- 대화 저장 — 모든 AI 대화 내역은 로컬(%APPDATA%)에만 저장, 외부 전송 없음

## 5. 테마 시스템

9개 내장 테마(Dark, Light, OLED, Nord, Monokai, Catppuccin, Sepia, Alfred, Alfred Light) + 커스텀 테마를 지원합니다.

- 각 테마는 색상뿐 아니라 모서리 라운딩 비율도 다릅니다 (OLED가 가장 둥글고, Monokai가 가장 각짐)
- 커스텀 테마는 14개 색상 + 모서리 라운딩 슬라이더로 자유롭게 편집
- 트레이 메뉴, AI 대화 창 모두 현재 테마를 자동으로 따라감

## 6. 사용 통계 & 알림

- 런처 호출 횟수: 최근 14일 막대 차트
- PC 활성 시간: 최근 14일 막대 차트
- 상위 명령: 30일 합산 Top 10 순위
- 잠금 해제 알림: PC 잠금 해제 시 누적 사용시간 + 명언 팝업 (30분~4시간 간격, 5초~3분 표시)

## 7. 주요 명령어 요약

프리픽스 | 기능 | 예시
--- | --- | ---
`!` | AI 대화 (AX Agent) | !nginx 설정 방법
`=` | 계산기 + 단위/통화 변환 | = 100 USD to KRW
`#` | 클립보드 히스토리 | # api
`$` | 클립보드 변환 (12종) | $ base64
`cap` | 화면 캡처 | cap region, cap scroll
`win` | 창 전환 (Alt+Tab 대체) | win excel
`snap` | 창 분할 레이아웃 | snap left, snap full
`json` | JSON 검증/포맷/미니파이 | json format
`pipe` | 클립보드 파이프라인 | pipe upper > trim
`date` | 날짜 계산/D-day/타임스탬프 | date +30d
`?` | 웹 검색 (10개 엔진) | ?n 맛집 (네이버)
`;` | 텍스트 스니펫 | ;addr → 자동 확장
`/` | 시스템 명령 + 타이머/알람 | /timer 5m 회의
`emoji` | 이모지 피커 (300+) | emoji 웃음
`journal` | 업무 일지 자동 생성 | journal
`routine` | 출퇴근 루틴 실행 | routine morning

## 8. 기술 스택

- .NET 8, WPF (UseWPF=true), WinForms (일부 다이얼로그)
- P/Invoke: SetWindowPos, PrintWindow, GlobalMemoryStatusEx, EnumWindows, GetPixel 등 Windows API 직접 호출
- 단일 EXE 배포: Self-Contained + PublishSingleFile + IncludeNativeLibrariesForSelfExtract
- 보안: DPAPI(System.Security.Cryptography.ProtectedData), AES-256-CBC, HKCU 레지스트리
- LLM 통신: HttpClient SSE 스트리밍 (Ollama/vLLM/Gemini/Claude API)
- 테스트: xUnit 2.9.0 + FluentAssertions (57개 단위 테스트)

## 9. v1.0.5 주요 변경 사항

구분 | 내용
--- | ---
AX Agent | ! 예약어로 AI 대화 창. Claude Desktop 스타일 2패널 구조
LLM 4종 | Ollama, vLLM, Gemini, Claude API 통합 지원
스트리밍 | SSE 기반 스트리밍 + 12ms 타이핑 효과 + 커서 깜빡임
코드 강조 | 10개 언어 키워드 하이라이팅 + 코드 블록 복사
토큰 표시 | k/m 단위 사용량 + 응답 소요시간(초)
프롬프트 카드 | 시스템 프롬프트 프리셋 + 사용자 정의 템플릿
대화 관리 | 고정/이름변경/분류/삭제, 피드백, 메시지 편집
지연 캡처 | Shift+Enter → 3/5/10초 타이머 후 캡처
커스텀 Popup | 모든 드롭다운 메뉴를 라운드 커스텀 Popup으로 통일
알림 확장 | 기본 15초, 1분/2분/3분 표시 시간 추가

## 10. 마무리 — LLM과 함께 만든 프로젝트

AX Copilot은 기획부터 구현, 테스트, 문서화까지 LLM(Claude)과 함께 진행한 프로젝트입니다.

- 기획: Alfred, Raycast 등 기존 런처의 장점을 분석하고, 사내 환경에 맞는 기능 선별
- 구현: WPF + P/Invoke 기반으로 외부 의존성 없이 45개+ 기능 구현
- AI 통합: Ollama/vLLM/Gemini/Claude 4종 LLM 서비스를 사내 환경에 맞게 통합
- 검수: 코드 리뷰, 오류 분석, 보안 점검, 성능 최적화를 LLM과 함께 반복
- 문서: 개발 문서, 사용자 매뉴얼, 블로그 글까지 LLM이 작성

"개인적으로 느낀 것은, LLM은 '코드 생성기'가 아니라 '함께 생각하는 동료'에 가깝다는 것입니다."
"이 기능은 이렇게 하면 어떠냐?" "이 부분은 보안 리스크가 있어" "사용자가 이렇게 쓰면 문제될 수 있어" — 이런 피드백을 주고받으며 프로젝트를 완성했습니다.

AX Copilot v1.0.5 — 모든 업무를 키보드 하나로.

백승재 · AX연구소 AI팀 · SW Architect · www.swarchitect.net