Package Exports
- hanseol-dev
- hanseol-dev/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (hanseol-dev) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Hanseol (English)
OpenAI-Compatible CLI Coding Agent
A developer-focused coding agent for local or on-prem LLM environments.
Works with vLLM, Ollama, LM Studio, and any OpenAI-compatible API.
https://github.com/user-attachments/assets/77cc96c9-cb22-4411-8744-3a006b00c580
What You Can Do
- Read/search/edit/create code with safe, file-level changes.
- Plan & Execute: breaks tasks into TODOs and runs them step by step.
- Supervised Mode: approval required before file modifications.
- Deep Research: Built-in web search via headless Chrome — no Tavily, Google API, or external search service needed. Searches Naver & Google, visits source pages, cross-verifies facts, and returns cited answers.
- Browser automation: Chrome/Edge CDP control (navigate, click, screenshot).
- Office automation: PowerShell/COM control for Excel/Word/PowerPoint.
- Session management: save and restore conversation history.
- Auto retry & recovery for failed tool calls.
Quick Start
# 1. Install
git clone https://github.com/A2G-Dev-Space/Hanseol.git
cd Hanseol
npm install && npm run build
# 2. Run
node dist/cli.js # or use 'hanseol' after npm linkThe endpoint setup wizard launches automatically on first run.
Highlights
Supervised Mode
Request approval before running file modification tools.
Plan & Execute
Automatically turns requests into TODOs and executes them in order.
Deep Research (Search Sub-Agent)
Performs Perplexity-level web research using its own headless Chrome engine — no external search API (Tavily, SerpAPI, Google API) required.
- Dual-engine search: Naver (primary) + Google (secondary)
- Internal source search: Configure additional URLs (Confluence, internal wikis) via
researchUrlsin config - Visits actual source pages, extracts content, cross-verifies facts
- Injects today's date for recency assessment
- Returns comprehensive answers with source citations
- Handles Cloudflare-blocked sites gracefully (auto-skip + alternative sources)
Confluence Integration
Edit or create Confluence pages directly via confluence_request:
- Opens a visible browser to access Confluence
- Supports macros, tables, rich text, ProseMirror/TinyMCE editors
- Configure
browserServiceswith typeconfluencein config to enable
{
"browserServices": [{ "type": "confluence", "name": "My Confluence", "url": "https://confluence.example.com" }],
"researchUrls": [{ "name": "My Confluence", "url": "https://confluence.example.com" }]
}Jira Integration
Manage Jira issues directly via jira_request:
- Opens a visible browser to access Jira (no API key needed)
- Fetch assigned/watching issues via JQL, create issues (Epic, Story, Task, Bug, Sub-task), add comments, transition status
- Two-phase issue creation: fill form → user confirmation → submit
- Autonomous DOM discovery — works with Cloud, Server, and Data Center
- Configure
browserServiceswith typejirain config to enable
{
"browserServices": [{ "type": "jira", "name": "My Jira", "url": "https://jira.example.com" }]
}Automation Extensions
- Browser: PowerShell/Chrome CDP, no external server required.
- Office: PowerShell/COM automation for Excel/Word/PowerPoint.
Commands & Shortcuts
Slash Commands
| Command | Description |
|---|---|
/help |
Help |
/clear |
Reset conversation |
/compact |
Compress conversation |
/load |
Load saved session |
/model |
Switch model |
/settings |
Settings menu |
/usage |
Token usage |
/docs |
Docs management |
/tool |
Toggle optional tools (browser/office) |
Keyboard Shortcuts
Ctrl+CExitESCInterruptTabAuto ↔ Supervised@File browser/Command autocomplete
Configuration
hanseol # Setup wizard on first run
/settings # Settings menu while runningAny OpenAI-compatible API works: vLLM, Ollama, LM Studio, Azure OpenAI, or internal LLM servers.
Requirements
- Node.js v20+
- npm v10+
- Git (for docs/repo usage)
Contact
Email: gkstdmgk2731@naver.com
Documentation
License
MIT License
GitHub: https://github.com/A2G-Dev-Space/Hanseol
Hanseol (한국어)
OpenAI-Compatible CLI Coding Agent
로컬/사내 LLM 환경에서 바로 사용할 수 있는 개발자용 코딩 에이전트입니다.
vLLM, Ollama, LM Studio 등 OpenAI 호환 API를 지원합니다.
이 툴로 할 수 있는 것
- 코드 읽기/검색/수정/생성: 파일 단위로 안전하게 수정합니다.
- Plan & Execute: 작업을 TODO로 분해하고 단계적으로 실행합니다.
- Supervised Mode: 파일 변경 전 사용자 승인 기반 작업.
- Deep Research (자체 웹 검색): Tavily, Google API 등 외부 검색 서비스 없이 자체 headless Chrome으로 Naver/Google을 직접 검색하고 소스 페이지를 방문하여 정보를 수집·교차검증·합성합니다.
- 브라우저 자동화: Chrome/Edge CDP 제어(탭 이동, 클릭, 스크린샷 등).
- Office 자동화: PowerShell/COM 기반 Excel/Word/PowerPoint 제어.
- 세션 관리: 대화 및 작업 히스토리 저장/복원.
- 자동 재시도/에러 복구: 도구 호출 실패 시 자동 재시도.
Quick Start
# 1. Install
git clone https://github.com/A2G-Dev-Space/Hanseol.git
cd Hanseol
npm install && npm run build
# 2. Run
node dist/cli.js # 또는 npm link 후 'hanseol'첫 실행 시 LLM 엔드포인트 설정 마법사가 자동으로 열립니다.
주요 기능 하이라이트
Supervised Mode
파일 수정 도구 실행 전에 승인 요청:
┌─────────────────────────────────────────────────────────────┐
│ 🔧 edit_file │
│ ───────────────────────────────────────────────────────── │
│ 📁 file_path: /src/utils/helper.ts │
│ 📝 diff: + added lines ... │
│ ───────────────────────────────────────────────────────── │
│ ▸ [1] ✅ Approve │
│ [2] ❌ Reject │
└─────────────────────────────────────────────────────────────┘- Tab: Auto ↔ Supervised 모드 전환
- 파일 수정 도구만 승인 필요
- Reject 시 피드백을 반영해 재시도
Plan & Execute
요청을 TODO로 분해해 순차 실행:
You: 로깅 시스템 추가해줘
┌────────────────────────────────────────────────┐
│ 📋 TODO List 1/3 │
│ ████████░░░░░░░░░░░░░░░░░ 33% │
│ ├─ ☑ logger.ts 생성 │
│ ├─ ⣾ 기존 코드에 import 추가 │
│ └─ ☐ 에러 핸들링 적용 │
└────────────────────────────────────────────────┘Deep Research (자체 웹 검색 엔진)
외부 검색 API(Tavily, SerpAPI, Google API) 없이 자체 headless Chrome 엔진으로 웹 리서치를 수행합니다.
- 듀얼 엔진: Naver(1차) + Google(2차) 동시 검색
- 내부 소스 검색: config의
researchUrls에 Confluence, 사내 위키 등의 URL을 추가하면 웹 검색과 함께 자동 검색 - 검색 결과의 실제 소스 페이지를 방문하여 본문 내용 추출
- 복수 소스 간 교차 검증 후 출처와 함께 종합 답변 생성
- 오늘 날짜 자동 주입으로 최신 정보 여부 판단
- Cloudflare 차단 사이트 자동 우회 (블로그/뉴스 경유)
Confluence 연동
confluence_request로 Confluence 페이지를 직접 편집하거나 생성할 수 있습니다.
- config의
browserServices에 Confluence URL을 추가하면 활성화 - config의
researchUrls에 추가하면 Deep Research에서도 Confluence 검색 가능 - 매크로, 테이블, 리치 텍스트, ProseMirror/TinyMCE 에디터 지원
{
"browserServices": [{ "type": "confluence", "name": "My Confluence", "url": "https://confluence.example.com" }],
"researchUrls": [{ "name": "My Confluence", "url": "https://confluence.example.com" }]
}Jira 연동
jira_request로 Jira 이슈를 직접 관리할 수 있습니다.
- 가시적 브라우저로 Jira에 직접 접속 (API 키 불필요)
- JQL로 할당/워처 이슈 조회, 이슈 생성(Epic/Story/Task/Bug/Sub-task), 코멘트, 상태 전환
- 이슈 생성 시 2단계 확인: 폼 입력 → 사용자 확인 → 제출
- 자율 DOM 탐색으로 Cloud, Server, Data Center 모두 지원
- config의
browserServices에 Jira URL을 추가하면 활성화
{
"browserServices": [{ "type": "jira", "name": "My Jira", "url": "https://jira.example.com" }]
}최신 자동화 확장
- 브라우저 자동화: PowerShell/Chrome CDP 기반, 별도 서버 없음
- Office 자동화: PowerShell/COM 기반, Excel/Word/PowerPoint 직접 제어
명령어 & 단축키
Slash Commands
| Command | 설명 |
|---|---|
/help |
도움말 |
/clear |
대화 초기화 |
/compact |
대화 압축 |
/load |
세션 불러오기 |
/model |
모델 전환 |
/settings |
설정 메뉴 |
/usage |
토큰 사용량 |
/docs |
문서 관리 |
/tool |
선택 기능 토글 (browser/office) |
Keyboard Shortcuts
Ctrl+C종료ESC작업 중단TabAuto ↔ Supervised@파일 브라우저/명령어 자동완성
Configuration
hanseol # 최초 실행 시 설정 마법사
/settings # 실행 중 설정 메뉴OpenAI 호환 API라면 대부분 연결 가능합니다: vLLM, Ollama, LM Studio, Azure OpenAI, 사내 LLM 서버 등.
Requirements
- Node.js v20+
- npm v10+
- Git (문서/리포 사용 시)
문의
Email: gkstdmgk2731@naver.com
Documentation
License
MIT License