Package Exports
- @team-semicolon/semo-cli
- @team-semicolon/semo-cli/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 (@team-semicolon/semo-cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@team-semicolon/semo-cli
SEMO — 자기 KB 위에 봇 하네스를 올리는 메타 프레임워크 (CLI). 개인은 노트북 한 대로, 팀은 PostgreSQL 위에서 동일 엔진을 공유한다.
30초 설치
npm install -g @team-semicolon/semo-cli
semo init # 프로파일 선택 → ~/.semo 생성
semo migrate-sqlite # KB/Ops 스키마 적용 (Personal 기본)
semo doctor # 설치 헬스체크또는 일회성 실행:
npx @team-semicolon/semo-cli init프로파일 — 5분 안에 결정
semo init 첫 화면에서 선택한다. 운영 환경이 바뀌면 ~/.semo/config.toml 만 교체하면 된다.
| 프로파일 | KB | 실행 타깃 | 메신저 | 용도 |
|---|---|---|---|---|
personal-discord (기본) |
SQLite | Ollama (로컬 LLM) | Discord 봇 | 노트북 1대, 자기만의 에이전트 — 데이터 로컬, 인터넷 다운돼도 KB 사용 |
personal-offline |
SQLite | Ollama | stdin (CLI) | 메신저 없이 터미널만으로 |
solo-connected |
SQLite | Anthropic API | HTTP/Obsidian | 클라우드 LLM + Tailscale 외부 접근 |
team |
PostgreSQL | Claude Code Orchestrator | Slack + Discord | 여러 명이 같은 KB 공유 (팀/스타트업) |
custom |
빈 스켈레톤 | — | — | 직접 편집 |
세미콜론 팀도
team프로파일의 한 사용자일 뿐. SEMO는 메타 프레임워크.
1분 만에 Personal Discord 봇 띄우기
# 1. Ollama 설치 + 모델
brew install ollama && ollama serve &
ollama pull qwen2.5-coder:14b
ollama pull nomic-embed-text
# 2. SEMO 초기화
semo init --profile personal-discord
semo migrate-sqlite
# 3. Discord 봇 등록 (https://discord.com/developers/applications 에서 생성 후)
export DISCORD_TOKEN='your-bot-token' # ~/.zshrc 또는 direnv 에 영구 저장 권장
semo doctor # ✓ Discord 봇 토큰 확인
# 4. Router 데몬 기동 (포그라운드, Ctrl+C 종료)
semo router start --platform discord
# 5. 첫 KB 채우기 — 대화형 온보딩 (별 터미널)
semo onboard # 닉네임/역할/관심사/목표 → me/* 자동 저장
# 또는 자연어 factory:
semo factory apply "오늘 회의에서 Notion 도입 결정됨" --yes이제 Discord 채널에서 @SemoBot 안녕을 보내면 로컬 Ollama가 KB와 함께 응답한다.
자세한 단계별 절차는 packages/cli/PERSONAL_TESTING.md 참고.
3-Layer 아키텍처 (요약)
| Layer | 소유자 | 내용 |
|---|---|---|
| L0 SEMO Core | npm 공개 | SemoBot 오케스트레이터, KB/Ops 인프라, 봇 템플릿 카탈로그 (@team-semicolon/semo-cli) |
| L1 Profile | 사용자 선택 | ~/.semo/config.toml — KB 드라이버 / 메신저 / LLM 타깃 |
| L2 Tenant | 사용자 소유 | 자기 도메인 KB 엔트리, 봇 인스턴스, 자유 CRUD |
업그레이드 시 L0 만 semo update 로 갱신, L2 데이터는 그대로.
봇 카탈로그
semo templates list 로 사용 가능한 역할 템플릿 목록. SemoBot 외 모든 봇은 템플릿 → 복사 → 사용자 정의 흐름.
| ID | 역할 | 강점 |
|---|---|---|
semoclaw (필수) |
오케스트레이터 | 사용자 의도 → 적절한 봇 dispatch |
planclaw |
기획/PRD | 요구사항 정리, 스펙 작성 |
workclaw |
풀스택 구현 | 코드 작성, 마이그레이션 |
reviewclaw |
코드 리뷰/QA | PR 리뷰, 테스트 설계 |
designclaw |
디자인/퍼블리싱 | UI 설계, Figma 핸드오프 |
growthclaw |
SEO/마케팅/그로스 | KPI, 콘텐츠 |
infraclaw |
DevOps/배포 | 인프라, CI/CD |
내 도메인에 맞춰 템플릿을 복사하거나 SemoBot 과의 대화로 새 봇을 만들 수 있다 (semo factory apply "...").
자주 쓰는 명령
| 작업 | 명령 |
|---|---|
| 초기화 | semo init [--profile <name>] |
| KB 검색 | semo kb search "키워드" |
| KB 조회 | semo kb get <도메인> <키> [<sub_key>] |
| KB 저장 | semo kb upsert <도메인> <키> [<sub_key>] --content "..." |
| Discord 라우터 | semo router start --platform discord (Slack 미지원) |
| 봇 템플릿 목록 | semo templates list |
| 봇 생성 | semo factory apply "기획 봇 만들어줘" |
| LLM 실행 | semo exec "프롬프트" |
| 채팅 REPL | semo chat --target ollama --model qwen2.5-coder:14b |
| 첫 온보딩 | semo onboard (me/* KB 자동 채움) |
| 헬스체크 | semo doctor |
| 업그레이드 | semo update |
환경변수
| 변수 | 용도 |
|---|---|
SEMO_HOME |
기본 ~/.semo 변경. 한 머신에서 Team/Personal 프로파일 분리 시 유용 |
SEMO_CONFIG_PATH |
config.toml 경로 직접 지정 |
ANTHROPIC_API_KEY |
solo-connected / team 프로파일 |
DISCORD_TOKEN |
Discord 봇 토큰 (Personal Discord 프로파일 필수) |
SLACK_BOT_TOKEN |
Slack 봇 토큰 (Team 프로파일) |
OLLAMA_HOST |
Ollama 호스트 변경 (기본 http://127.0.0.1:11434) |
설치/AX 컨설팅 문의
- 엔진어: 무료 (OSS, Apache-2.0)
- 설치/온톨로지 컨설팅: 세미콜론 팀에서 유상 제공 (Discord/Slack DM)
- 베타 사용자: GitHub Issues 또는 Discord 커뮤니티
참고
- 메인 레포: https://github.com/semicolon-devteam/semo
- 3-Layer 설계:
docs/ARCHITECTURE.md - 자주 묻는 질문:
docs/FAQ.md
라이선스
Apache-2.0