CODESCAN
Dev Harness → GitHub ↗
CODESCAN

Single-binary code scanner for the AI era

AI 시대를 위한 단일 바이너리 코드 스캐너

Index a codebase at the class:method level with git blame, query it from any CLI, TUI, or local web GUI — one self-contained binary, no runtime to install.

소스 코드를 클래스:메서드 단위로 git blame 과 함께 인덱싱하고, CLI / TUI / 로컬 웹 GUI 어느 곳에서든 질의 — 런타임 설치 없는 단일 self-contained 바이너리.

⬇ Latest GitHub Release ⬇ 최신 GitHub Release 🛠 Install in one line🛠 한 줄 설치 ✨ What it does✨ 할 수 있는 일 ⚡ Why AOT?⚡ Why AOT? 🧭 Dev Harness🧭 개발 하네스 GitHub
CodeScan multi-OS release pipeline — win-x64, linux-x64, linux-arm64, osx-arm64 + SBOM + GitHub Release

One release pipeline produces four native binaries (win-x64, linux-x64, linux-arm64, osx-arm64) with SQLite embedded inside the single file. The same binary feeds three install channelswinget, brew, npm — plus a direct shell installer. Every release passes a CI smoke test (--version + projects) so a missing native library can never reach users.

하나의 릴리즈 파이프라인이 네 개의 네이티브 바이너리 (win-x64, linux-x64, linux-arm64, osx-arm64) 를 SQLite 임베드 상태로 만들어내고, 동일한 바이너리가 3개 설치 채널winget, brew, npm — 과 직접 셸 인스톨러를 모두 먹입니다. 모든 릴리즈가 CI smoke test (--version + projects) 를 통과 — 네이티브 라이브러리 누락이 사용자에게 닿을 수 없습니다.

Easy install — one line per OS

간편 설치 — OS별 한 줄

Windowsx64
winget install psmon.CodeScan
Channel-PR pending. Until merged, use winget install --manifest packaging\winget\manifests\p\psmon\CodeScan\0.5.0 after enabling local manifests once: winget settings --enable LocalManifestFiles (admin).
채널 PR 머지 전까지는 winget install --manifest packaging\winget\manifests\p\psmon\CodeScan\0.5.0. 사전에 관리자 PowerShell 로 winget settings --enable LocalManifestFiles 한 번 실행.
macOSarm64 (Apple Silicon)
brew tap psmon/codescan
brew install codescan
Tap is live. Intel Mac is a v2 candidate — build from source or use Rosetta with the arm64 build until then.
Tap 라이브. Intel Mac 은 v2 후보 — 그때까지 소스 빌드 또는 Rosetta 로 arm64 바이너리 실행.
Linuxx64 · arm64 (glibc) — also Windows x64
npm install -g codescan-cli
Thin wrapper — postinstall auto-detects OS+arch and downloads the right binary from GitHub Releases. Works on Linux, macOS arm64, and Windows x64 too (winget remains the recommended Windows path). Registry publish pending. Until then, use the direct installer below.
얇은 래퍼 — postinstall 이 OS+arch 자동 감지 후 GitHub Releases 에서 적합한 바이너리 다운로드. Linux, macOS arm64, Windows x64 모두 동작 (Windows 는 winget 이 여전히 권장). 레지스트리 publish 대기 중. 그때까지는 아래 직접 인스톨러 사용.

Direct installer (fallback)

직접 인스톨러 (fallback)

For environments without a package manager — or to pin a specific release. Both installers download the matching asset, verify SHA256 against checksums.txt, install to a user-local path, and never touch ~/.codescan/{db,logs,config}.

패키지 매니저 없는 환경 또는 특정 릴리즈로 고정할 때. 두 인스톨러 모두 자산 다운로드 → checksums.txt 기준 SHA256 검증 → 사용자 로컬 경로 설치 → ~/.codescan/{db,logs,config} 사용자 데이터는 절대 건드리지 않음.

# Windows (PowerShell)
iwr https://raw.githubusercontent.com/psmon/CodeScan/main/Script/install-win.ps1 -OutFile install-win.ps1
.\install-win.ps1

# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/psmon/CodeScan/main/Script/install.sh -o install.sh
sh install.sh

CLI · TUI · GUI — same binary, three surfaces

CLI · TUI · GUI — 같은 바이너리, 세 가지 인터페이스

CodeScan TUI home — Terminal.Gui v2 project browser
TUI — Terminal.Gui v2 (NetDriver) state machine. Project browsing, scan, keyword search, graph search.
CodeScan local web GUI — graph viewer
GUI — Local web viewer on port 8085. Keyword + graph + Cypher-like query, 2D canvas, controllable 3D view.

What it does for you

이 제품이 해주는 일

MULTI-LANG

10 languages, class:method level

10개 언어, 클래스:메서드 단위

Extracts classes, methods, comments, and dependency hints across C#, Java, Kotlin, JS, TS, PHP, Python, Go, Rust, C/C++.

C#, Java, Kotlin, JS, TS, PHP, Python, Go, Rust, C/C++ 에서 클래스, 메서드, 주석, 의존성 힌트 추출.

GIT BLAME

Method-level authorship

메서드 단위 작성자 추적

Each method carries its last author, date, and commit — no extra step, no separate index.

각 메서드가 최종 작성자, 작성일, 커밋을 함께 보관 — 별도 단계나 인덱스 없음.

FTS5

Trigram full-text + CJK

Trigram 풀텍스트 + CJK

SQLite FTS5 with a trigram tokenizer covers substring search and CJK languages (Korean, Chinese, Japanese) effectively.

SQLite FTS5 + trigram 토크나이저로 부분 문자열 검색과 한·중·일 CJK 언어를 효과적으로 커버.

HYBRID SEARCH

Index + live git log --grep

인덱스 + 라이브 git log --grep

Combines indexed FTS5 hits with live git log --grep matches — covers both the index and commit-message context.

인덱싱된 FTS5 결과와 라이브 git log --grep 매치를 결합 — 인덱스와 커밋 메시지 컨텍스트를 모두 커버.

GRAPH

Source knowledge graph

소스 지식 그래프

Neo4j-style nodes (project, file, class, method, author, type, module) + edges (contains, defines, authored, imports, creates, uses_type, inherits_or_implements) — all in embedded SQLite.

Neo4j 스타일 노드 (project, file, class, method, author, type, module) + 엣지 (contains, defines, authored, imports, creates, uses_type, inherits_or_implements) 를 임베디드 SQLite 에.

CYPHER-LIKE

Safe MATCH query subset

안전한 MATCH 질의 서브셋

Run MATCH ... WHERE ... LIMIT against the source graph — for CLI users, AI agents, and automation scripts that need structured graph retrieval without raw SQL.

소스 그래프에 MATCH ... WHERE ... LIMIT 실행 — SQL 직접 사용 없이 구조화된 그래프 조회가 필요한 CLI 사용자, AI 에이전트, 자동화 스크립트 용.

TUI

Terminal.Gui v2 (NetDriver)

Terminal.Gui v2 (NetDriver)

Project browsing, scanning, keyword search, graph search — entirely from the terminal.

프로젝트 탐색, 스캔, 키워드 검색, 그래프 검색 — 터미널만으로.

LOCAL WEB GUI

2D canvas + 3D camera

2D 캔버스 + 3D 카메라

Local web GUI on port 8085. Keyword + graph + Cypher-like query, Neo4jClient-style 2D graph canvas, controllable 3D view.

포트 8085 로컬 웹 GUI. 키워드 + 그래프 + Cypher-like 질의, Neo4jClient 스타일 2D 그래프 캔버스, 카메라 제어 가능한 3D 뷰.

SINGLE BINARY

No runtime to install

런타임 설치 불필요

.NET 10 self-contained single file with SQLite native lib embedded. Copy one file and run — Raspberry Pi included.

.NET 10 self-contained 단일 파일에 SQLite 네이티브 lib 임베드. 파일 하나 복사하면 끝 — 라즈베리 파이 포함.

Five-minute getting started

5분 시작하기

  1. Install (one of the three lines from above) 설치 (위 세 줄 중 하나) winget install psmon.CodeScan # Windows brew install psmon/codescan/codescan # macOS npm install -g codescan-cli # Linux winget install psmon.CodeScan # Windows brew install psmon/codescan/codescan # macOS npm install -g codescan-cli # Linux
  2. Scan a project (register + analyze + display) 프로젝트 스캔 (등록 + 분석 + 표시) codescan scan /path/to/project
  3. Search the index (hybrid: FTS5 + git log) 인덱스 검색 (하이브리드: FTS5 + git log) codescan search "HttpClient" --type method
  4. Query the source graph (Cypher-like) 소스 그래프 질의 (Cypher-like) codescan query "MATCH (c:class)-[r:uses_type]->(t:type) WHERE t.label = 'HttpClient'"
  5. Launch the TUI or local web GUI TUI 또는 로컬 웹 GUI 실행 codescan tui codescan gui start --port 8085 # browse http://127.0.0.1:8085/

CLI commands at a glance

한눈에 보는 CLI 명령

CommandDescription설명
scan [path]Register + analyze a directory디렉토리 등록 + 분석
list <path>Scan with custom filtering and output사용자 정의 필터/출력으로 스캔
search <query>Hybrid FTS5 + git log searchFTS5 + git log 하이브리드 검색
graph [query]Search and inspect the source graph소스 그래프 탐색
query <graph-query>Run a Cypher-like MATCH queryCypher-like MATCH 질의 실행
gui start | stopStart / stop the local web GUI로컬 웹 GUI 시작 / 정지
tuiLaunch the interactive TUI인터랙티브 TUI 실행
projectsList all registered projects등록된 모든 프로젝트 나열
project <id>Show project summary / --detail프로젝트 요약 또는 --detail 전체 보기

Why AOT? — Edge AI trend and the value of a single binary

Why AOT? — Edge AI 트렌드와 단일 바이너리의 가치

2026–2027 AI infrastructure is shifting from cloud frontier models toward on-device SLMs (Gemma 3, Nemotron Nano) and edge agents. Native AOT single-binary tools fit the same constraints those models live under — no runtime present, memory pressure, instant cold-start, supply-chain integrity. CodeScan ships under those constraints from v1.

2026~2027년 AI 인프라의 무게중심이 클라우드 프론티어 모델에서 온디바이스 SLM (Gemma 3, Nemotron Nano) 과 엣지 에이전트 로 이동하고 있습니다. Native AOT 단일 바이너리 도구는 그 모델들이 처한 제약 — 런타임 부재, 메모리 압박, 즉시 콜드 스타트, 공급망 무결성 — 에 그대로 부합. CodeScan 은 v1 부터 그 제약 위에 빌드됩니다.

INSTANT START

No JIT warmup

JIT warmup 없음

Decisive when an edge agent must respond within ~50 ms of a voice trigger.

엣지 에이전트가 음성 트리거 후 약 50ms 안에 응답해야 하는 시나리오에서 결정적.

RUNTIME-FREE

Copy & run on a Pi

파이에 복사만 하면 끝

A single codescan file runs on a Raspberry Pi with no .NET installed.

단일 codescan 파일이 .NET 설치 없는 라즈베리 파이에서 그대로 동작.

MULTI-ARCH

linux-arm64 is first-class

linux-arm64 1급 지원

From v1 the same pipeline publishes win-x64, linux-x64, linux-arm64, osx-arm64 as peer artifacts. SBC deployment needs no separate build.

v1부터 동일 파이프라인이 win-x64, linux-x64, linux-arm64, osx-arm64 를 동등하게 게시. SBC 배포에 별도 빌드 절차 없음.

SUPPLY-CHAIN

SBOM + SHA256, single file

SBOM + SHA256, 단일 파일

Every release ships a CycloneDX SBOM (sbom.cdx.json) and SHA256 in checksums.txt. Edge updates are infrequent, so artifact integrity matters more.

모든 릴리즈가 CycloneDX SBOM (sbom.cdx.json) + checksums.txt 의 SHA256 동봉. 엣지는 업데이트가 드물어 산출물 무결성이 더 중요.

Companion project — the "agent" half of the picture is being built in parallel as psmon/AgentZeroLite: an on-device SLM host that runs and evaluates Gemma 3 / Nemotron Nano-class models on real consumer hardware. CodeScan acts as the code-aware retrieval layer those agents call into.

자매 프로젝트 — 그림의 "에이전트" 쪽은 psmon/AgentZeroLite 에서 평행하게 만들어지고 있습니다: Gemma 3 / Nemotron Nano 급 온디바이스 SLM 을 실제 컨슈머 하드웨어에서 호스팅·평가. CodeScan 은 그 에이전트가 호출하는 코드 인지형 검색 레이어 역할.