본문으로 건너뛰기

ui

시각적인 Skill 관리를 위한 웹 대시보드를 실행합니다.

skillshare ui                  # 포그라운드에서 실행
skillshare ui start # 백그라운드 서버 시작(또는 기존 서버 재사용)
skillshare ui stop # 백그라운드 서버 중지

기본 브라우저에서 http://127.0.0.1:19420을 엽니다.

모드​

Mode동작
skillshare ui (기본값)UI 서버를 포그라운드에서 실행합니다. Ctrl+C로 중지합니다
skillshare ui startUI 서버를 백그라운드 프로세스로 시작하고 셸 제어권을 반환합니다. 기존 프로세스가 정상 상태이면 start를 다시 실행해도 해당 프로세스를 재사용합니다
skillshare ui stopskillshare ui start로 시작한 백그라운드 UI 서버를 중지합니다

사용 시점​

  • 시각적인 웹 인터페이스로 skill, target, sync를 관리
  • CLI 플래그를 외우지 않고도 skill을 탐색하고 설치
  • 시각적인 findings 리포트로 보안 감사를 실행
  • CLI에 익숙하지 않은 팀원과 대시보드 화면을 공유

플래그​

Flag기본값설명
-p, --projectproject mode로 실행합니다(.skillshare/ 사용)
-g, --globalglobal mode로 실행합니다(~/.config/skillshare/ 사용)
--port <port>19420HTTP 서버 포트
--host <host>127.0.0.1바인딩 주소(Docker에서는 0.0.0.0 사용)
-b, --base-path <path>reverse proxy용 하위 경로(예: /skillshare)
--no-openfalse브라우저를 자동으로 열지 않음
--appfalse가능한 경우 대시보드를 데스크톱 스타일의 Chromium 앱 창으로 엽니다(start mode 전용)
--clear-cache포그라운드 형태에서는 캐시된 UI 자산을 지우고 종료합니다. start와 함께 사용하면 캐시를 지운 후 백그라운드에서 시작합니다
자동 감지

현재 디렉터리에 .skillshare/config.yaml이 존재하면 대시보드가 자동으로 project mode로 시작됩니다. global mode를 강제하려면 -g를 사용하세요.

예제​

# 기본값: localhost:19420에서 브라우저를 엽니다(포그라운드)
skillshare ui

# Project mode(.skillshare/ skill 관리)
skillshare ui -p

# 사용자 지정 포트
skillshare ui --port 8080

# Docker / 원격 접속
skillshare ui --host 0.0.0.0 --no-open

# 백그라운드에서 시작하고 셸로 복귀
skillshare ui start

# 크롬 없는 데스크톱 스타일 앱 창으로 시작
skillshare ui start --app

# 백그라운드 서버 중지(기억된 host/port 사용)
skillshare ui stop

# 캐시된 UI 자산을 지운 후 백그라운드에서 새로 시작
skillshare ui start --clear-cache

대시보드 페이지​

사이드바는 페이지를 작업별로 그룹화합니다: 동기화, 관리 대상, 배포 위치, 유지 관리. 이름 아래 줄에는 Global · ~/.config/skillshare처럼 mode와 해당 폴더가 표시됩니다.

일부 페이지는 주의가 필요할 때 사이드바에 개수를 표시합니다. 대시보드 탭이 열려 있는 동안 이 개수는 15초마다 새로고침됩니다:

  • Sync: sync가 적용할 변경 사항
  • Git Sync: 커밋되지 않은 파일, 또는 트리가 깨끗할 때 아직 push되지 않은 커밋
  • Audit: 마지막 스캔에서 차단된 skill과 agent(스캔을 실행한 후 표시됨)
Page설명
Dashboardskill, agent, extras, MCP 서버, hook, plugin, target의 개수와 주의가 필요한 항목. 커밋되지 않은 변경 사항이 있거나 git 상태를 읽을 수 없는 tracked repo를 제거하면 이유를 알려 주고 다시 확인한 뒤 repo를 그대로 휴지통으로 옮깁니다(uninstall --force와 같음)
Synctarget별로 기록 전에 모든 변경 사항을 미리 봅니다. 포함할 부분(Skills, Agents, Extras, MCP)을 선택합니다. target 내부에서 편집된 파일은 Force가 켜져 있지 않은 한 유지됩니다. target에만 존재하는 항목은 여기서 source로 다시 수집할 수 있습니다. 각 sync는 먼저 target 폴더를 백업합니다. target이 실패해도 다른 target은 sync됩니다. 실패한 target은 해당 부분(Skills, Agents, Extras, Config)과 오류와 함께 다른 경고보다 위에 표시되고, 흔한 원인(다른 곳을 가리키는 symlink, 권한 거부, 읽기 전용 파일 시스템, 없는 파일이나 폴더, 잘못된 target 설정)에는 쉬운 설명도 붙으며, 다른 곳을 가리키는 Skills symlink에는 Force 켜기가 제공되며, 변경 목록에서도 해당 target이 표시됩니다. 모든 target이 실패해도 같은 방식으로 표시됩니다. 마지막 동기화 카드에는 가장 최근 sync에서 실패한 target이 표시됩니다
Git Syncsource repo를 commit하고 push하며, 아직 remote에 없는 커밋을 push하고, pull합니다. 페이지를 열면 remote에서 fetch하므로 Pull 버튼에 remote에 있는 커밋 수가 표시됩니다. Pull은 pull과 마찬가지로 repo scope가 담고 있는 것(skills, agents, extras, 또는 root)을 동기화합니다. Sync both ways는 로컬 변경 사항을 commit하고, pull해 병합하고, target을 동기화한 뒤 push합니다(push --pull과 같음). 충돌이 발생하면 push하기 전에 멈춥니다. remote에 더 새로운 커밋이 있어 push가 거부되면 오류 알림에서 Pull을 제공합니다. 첫 pull이 remote와 병합할 수 없을 때는 로컬 파일을 remote 브랜치로 교체하는 force pull을 제공합니다
HubsSkills 페이지에서 접근합니다. 내장 hub, 저장된 hub, 내 Hub(내 Hub)를 나열하며, 하나를 선택해 Skill을 필터링하고 설치합니다. Hub 추가 또는 만들기는 기존 hub 추가, 새 Hub 만들기, skillshare-hub.json 가져오기를 합니다. 내 Hub는 편집으로 변경하고 공유로 인덱스를 다운로드하고 hub add 명령을 만듭니다. hub 참고
Skills / Agents설치된 항목, Updates 탭, Trash 탭. Skills에는 각 skill이 target의 context에 추가하는 토큰 수를 추정하는 Analyze 탭도 있습니다. Install은 GitHub를 검색하거나 URL 또는 경로에서 설치합니다. + New Skill은 생성 마법사를 엽니다. Link folder는 link처럼 폴더를 skills source에 링크합니다. 경로, 선택적인 링크 이름, 그리고 follow_source_links가 꺼져 있는 동안에는 이를 켜는 체크박스를 받으며, 거부된 폴더에는 명령과 같은 이유를 표시합니다. 링크된 폴더는 링크 아이콘과 가리키는 폴더가 표시된 별도 그룹으로 나열됩니다. 그 행의 아이콘 버튼(마우스를 올리면 링크 아이콘이 링크 해제 아이콘으로 바뀜)은 확인을 거친 뒤 unlink처럼 링크를 해제합니다. 폴더 자체는 건드리지 않으며 링크는 Trash 탭에서 복원할 수 있습니다. 링크된 폴더 안의 skill은 개별로 제거할 수 있으며, 그 폴더에서 trash로 옮겨집니다. 링크된 폴더에는 Update repo와 Uninstall repo가 없습니다. 목록과 카드 보기는 Folder(tracked repo, frontend/react 같은 폴더, 또는 Root)로 필터링하고 Folder로 그룹화할 수 있으며, Root가 먼저 오고 나머지 폴더는 이름 A→Z 순입니다. tree 보기는 왼쪽에 source 폴더를, 오른쪽에 상세 정보를 보여 줍니다. 폴더나 skill을 클릭해 선택하고, Cmd/Ctrl 클릭으로 선택에 추가하고, Shift 클릭으로 범위를 선택하며, skill을 더블클릭하면 열립니다. 오른쪽에서는 선택한 모든 항목을 스위치 하나로 켜거나 끄고(.skillignore.local의 ! 규칙이 켜 둔 채로 유지하는 항목은 이유와 함께 실패로 보고됩니다), targets를 설정하며(tracked repo와 그 하위 폴더 포함), 각 skill을 개별 스위치와 함께 나열합니다. tracked repo에는 Update repo와 Uninstall repo도 있습니다. disable-model-invocation: true가 설정된 skill은 목록, 타일, 상세 페이지에 manual only 태그가 표시되며, 이는 list에서 m으로 전환하는 것과 같은 상태입니다. skill 편집기에서 Add field는 각 frontmatter 필드가 하는 역할을 설명합니다. Sync skills / Sync agents는 미리 본 뒤 해당 종류만 모든 target에 동기화합니다. 업데이트, 제거 또는 collect 후에는 Sync Now에서 같은 대화상자가 열립니다. 파일 브라우저는 연결된 source 링크 자체가 skill의 루트인 경우에도 링크를 통해 SKILL.md와 첨부 파일을 나열합니다.
Extras폴더: skill과 함께 동기화되는 rules, commands, 기타 폴더. AGENTS.md: global 모드에서는 공유 AGENTS.md와 그것을 쓰는 target, 프로젝트에서는 프로젝트의 ./AGENTS.md와 각 target이 그것을 읽는지 여부. 여러 도구에서 하나의 AGENTS.md 공유하기를 참고하세요 Memory: 메모리 공유 가이드(영어 스크린샷). 노트 검색, 미리 보기, 편집, 삭제, INDEX 링크, 충돌 시 초안 보존, Backup Files 기록과 복원, Connect to agents → Review changes → Apply changes. 설정 상태는 읽기를 증명하지 않습니다
MCP서버당 한 행이며, 동기화 대상인 Agent가 chip으로 표시되며, 행의 카운트 버튼을 누르면 해당 토글이 열립니다. 서버 추가는 URL, command, 붙여넣은 snippet 또는 파일을 받습니다. target에서 가져오기는 설치된 Agent가 이미 가지고 있는 것을 읽어옵니다. 각 서버의 메뉴에는 각 Agent에 기록될 설정 보기가 있어 source와 모든 Agent의 파일을 나열하고, 선택한 파일을 저장되지 않은 편집을 포함해 보여줍니다. 충돌 시 해당 Agent에서 가져오기 또는 원본으로 덮어쓰기를 제공합니다. 서버 대화상자의 도구 섹션은 도구 정책을 설정합니다: 저장 여부와 관계없이 대화상자의 현재 설정으로 서버를 한 번 시작해 도구를 선택할 수 있는 목록으로 보여 주는 도구 불러오기, * 패턴용 제외 규칙 행이 있습니다. 이 섹션은 정책 일부를 적용하지 않는 선택된 Agent를 각각 나열하며, 정책이 설정되면 행에 태그가 표시됩니다. Pi 서버의 경우, 대화상자에는 Pi 내장 MCP 설정도 있습니다: 도구 노출 방식과 기타 Pi 설정이며, 이 설정은 piOptions를 JSON으로 받고 도움말은 정보 툴팁에 있습니다. 기본값은 mcp.targets를 편집합니다. Sync 박스의 Sync MCP는 대기 중인 변경 사항을 나열하고 MCP 설정 파일만 작성하며, 각 파일의 백업을 남깁니다. 그 아래에서 검사는 서버를 검사하고, 백업 및 복원는 그 백업을 미리 보고 복원합니다.
Pluginsplugin당 한 행이며, 해당 Agent가 토글로 표시됩니다. 행을 펼치면 소스가 지원하는 다른 Agent도 나열되며, 하나를 선택하면 설치를 미리 봅니다. 행 메뉴는 sync, update, remove를 수행하거나, Skillshare가 검토한 로컬 사본을 읽기 전용으로 탐색하는 View files를 엽니다. Manage plugins across tools 참고
Targets상태가 표시된 target 목록. 대상 추가는 다른 계정도 받습니다. 이미 사용 중인 Agent의 두 번째 config 폴더이며, 어디에 기록되는지 미리보기로 보여줍니다. 각 target의 페이지에서 include/exclude 필터를 편집하고 로컬 전용 skill을 source로 다시 수집합니다. Syncing 열에는 각 target이 받는 것이 링크로 표시됩니다. Skills, Agents, MCP, Hooks와 그 수, Pi의 Extensions, 그리고 공유 AGENTS.md가 연결된 target의 지침 파일이며, 클릭하면 target 페이지의 해당 탭이 열립니다. MCP 설정 파일이 있는 target에는 MCP 탭이 있어 서버마다 한 행으로 고릅니다. 클릭하면 바로 저장되고 Sync all targets가 모든 target의 MCP 파일에 기록합니다. 각 target에는 지침 파일 이름을 딴 탭(CLAUDE.md, GEMINI.md, AGENTS.md, ...)도 있어, 읽는 순서를 보여 주고 파일을 편집하며 AGENTS.md로 변환합니다
프로젝트Global mode 전용. global 설정이 동기화하는 프로젝트 폴더이며, projects와 mcp.projects에서 옵니다. 프로젝트 추가는 폴더, 그 target, 동기화할 항목을 받습니다. 각 프로젝트에는 필터, 미리보기, 기록될 폴더를 보여주는 Skills와 Agents 탭, 그리고 해당 폴더에서 global 서버를 끄거나 프로젝트 자체 서버를 부여하며 그 서버를 위한 검사가 있는 MCP 탭이 있습니다. Sync project는 미리 본 뒤 해당 프로젝트의 skill, agent, MCP만 동기화합니다. 이미 프로젝트 폴더를 가리키는 Target은 변환할 수 있습니다
Auditskill과 agent에 대한 보안 스캔이며, 심각도별로 findings를 표시합니다. Rules 탭에서는 카테고리별로 모든 rule을 탐색할 수 있습니다: rule을 끄거나, 심각도를 변경하거나, 카테고리 전체에 심각도를 적용하거나, 스캔 profile(default, strict, permissive)을 선택하거나, 사용자 지정 audit-rules.yaml 편집기를 엽니다
Settings탭으로 구성: General(source 경로, sync mode, 외관), Backup(대상 폴더 스냅샷, AGENTS.md 같은 파일의 이전 버전, MCP 설정 백업. backup 참고), Log(작업 이력), Health(doctor와 동일한 검사), Extensions(sync 시점의 파일 변환), Files(config.yaml, .skillignore, .agentignore를 위한 직접 편집기. .skillignore.local이나 .agentignore.local이 있으면 파일 뒤에 적용되어 덮어쓸 수 있으므로 편집기 위에 그 규칙을 보여 줍니다)

변경 목록 옆의 변경 사항 버리기는 확인 후 선택한 Git 범위 내의 추적 중인 파일과 스테이징 영역을 마지막 커밋으로 복원하고 추적되지 않은 파일과 폴더를 삭제합니다. Git에서 무시한 파일, 중첩된 Git 저장소 및 root 범위의 config.yaml은 유지됩니다. 커밋 기록을 변경하거나 원격 저장소로 푸시하지 않으며, 이 작업은 되돌릴 수 없습니다. 시험 실행은 파일을 변경하지 않고 미리 봅니다. 변경 사항을 버리려면 저장소에 첫 번째 커밋이 있어야 합니다.

Updates 탭의 진행률 표시줄은 업데이트 진행 상황을 보여 주며 업데이트 중인 행도 표시됩니다. 차단되거나 실패한 업데이트는 별도 섹션에 표시됩니다. 링크를 따라 발견한 Git 체크아웃은 링크 이름과 대상 경로가 있는 정보 행으로 표시됩니다. skillshare update --all처럼 이 탭에서는 확인, 업데이트 또는 강제 재시도를 하지 않습니다. 체크아웃을 직접 관리하거나 CLI에서 이름을 지정해 업데이트하세요.

/collect, /install, /search, /trash, /analyze, /backup, /log, /doctor와 같은 이전 링크는 새 위치로 리디렉션됩니다.

Files 탭은 편집기 옆에 패널을 배치합니다. config.yaml의 경우 커서 아래 필드가 하는 역할, 파일 구조, 저장되지 않은 변경 사항을 보여줍니다. ignore 파일의 경우 패턴이 현재 무엇을 숨기고 있는지 나열합니다. Cmd+S / Ctrl+S로 저장합니다. Audit -> Rules -> Edit YAML 아래의 rules 편집기에는 동일한 패널과 함께, 붙여넣은 줄에 대해 rule의 regex를 실행하는 Test 탭이 있습니다.

테마 시스템​

대시보드는 두 가지 시각적 스타일과 세 가지 색상 모드를 지원하며, 사이드바의 Theme 버튼으로 전환할 수 있습니다:

SettingOptions기본값
StyleClean(전문적인 느낌), Playful(굵은 외곽선, 강한 그림자, 손글씨 스타일 제목)Playful
ModeLight, Dark, System(OS 설정을 따름)Light

테마 설정은 세션 간에도 localStorage에 유지됩니다.

Project Mode 차이점​

project mode(-p)로 실행할 때 대시보드는 다음과 같이 달라집니다:

  • Sidebar는 이름 아래에 Project · <project path>를 표시합니다
  • Git Sync page는 숨겨집니다(project skill은 프로젝트 자체의 git을 사용)
  • Sync는 skillshare sync -p와 마찬가지로 agent target 폴더만 백업합니다
  • Backup tab은 Settings에서 숨겨집니다(대신 버전 관리를 사용)
  • Tracked Repos section은 Dashboard에서 숨겨집니다(해당 없음)
  • Settings -> Files는 global 버전 대신 .skillshare/config.yaml과 프로젝트 수준의 .skillignore를 표시합니다
  • Available targets는 프로젝트 수준의 target을 나열합니다(예: 프로젝트 루트 기준 .claude/skills/)
  • Targets는 프로젝트의 MCP 서버를 세고 켜고 끄며, 프로젝트 자체 파일(예: .mcp.json)에 기록합니다. Claude Code, OpenCode, Kilo Code, Pi의 MCP 탭에는 이 프로젝트에서 전역 서버를 끄는 스위치도 표시됩니다
  • Install은 프로젝트 config의 skills: 항목을 자동으로 재조정합니다
  • Extras -> AGENTS.md는 공유 파일 대신 프로젝트의 ./AGENTS.md를 편집하며, 자체 파일만 읽는 target에는 간단한 수정을 제안합니다

UI 미리보기​

설치 흐름대시보드 개요Skills 탐색기Skill 상세 보기Sync 컨트롤GitHub 검색 화면프로젝트 폴더 목록을 보여 주는 Projects 페이지

REST API​

웹 대시보드는 /api/에서 REST API를 제공합니다. 모든 엔드포인트는 JSON을 반환합니다.

MethodPath설명
GET/api/overviewSkill/target 개수, mode, 버전, config 폴더(configDir)
GET/api/skills메타데이터와 함께 모든 skill 목록 조회
GET/api/skills/{name}Skill 상세 정보 + SKILL.md 내용
GET/api/skills/templatesskill 생성에 사용 가능한 패턴과 카테고리 조회
POST/api/skills새 skill 생성(name, pattern, category, scaffoldDirs)
DELETE/api/skills/{name}skill 제거
GET/api/targets상태, include/exclude 필터, target별 예상 개수와 함께 target 목록 조회
POST/api/targetstarget 추가
DELETE/api/targets/{name}target 제거
POST/api/syncsync 실행(dryRun, force, kind, 그리고 sync를 해당 프로젝트의 target으로 제한하는 선언된 프로젝트 루트인 project 지원). dryRun이 설정되지 않은 한 먼저 target을 백업합니다
POST/api/git/commitpush 없이 source repo에서 로컬 git commit 생성
POST/api/git/discard설정된 Git 범위 내의 커밋되지 않은 변경 사항을 버립니다(전역 모드 전용, 저장소에 첫 번째 커밋 필요). dryRun을 지원합니다. Git에서 무시한 파일, 중첩된 Git 저장소 및 root 범위의 config.yaml을 유지합니다
GET/api/git/status아직 push되지 않은 커밋(ahead)과 마지막 fetch 기준으로 아직 pull하지 않은 upstream 커밋(behind)을 포함한 source repo 상태. fetch는 하지 않습니다
POST/api/push변경 사항을 commit한 후 push합니다. 첫 push 시 upstream을 설정합니다. remote에 이 repo에 없는 커밋이 있으면 409와 오류 코드 push_rejected로 실패합니다. pull한 후 다시 push하세요
POST/api/pullpull한 후 repo scope가 담고 있는 것을 sync합니다. 갈라진 히스토리는 병합되며, .metadata.json 충돌은 자동으로 해결되고, 그 외의 충돌은 병합을 되돌린 채 실패합니다. 첫 pull이 병합에 실패하면 오류 코드 merge_failed로 실패합니다. 로컬 파일을 remote 브랜치로 교체하려면 force: true로 재시도하세요. alwaysSync: true를 지정하면 새로 가져온 것이 없어도 target을 sync합니다. 브랜치가 없는 remote에서는 400 remote_empty를 반환합니다
GET/api/diffsource와 target 간의 diff
GET/api/search?q=GitHub에서 skill 검색
POST/api/installsource에서 skill 설치
GET/api/audit모든 skill에 대해 보안 위협 스캔
GET/api/audit/rules사용자 지정 audit rules YAML 조회
PUT/api/audit/rules사용자 지정 audit rules 저장(regex 검증)
POST/api/audit/rules초기 audit-rules.yaml 생성
GET/api/audit/rules/compiledbuilt-in rule과 사용자 지정 rule을 병합한 모든 rule, 그리고 활성 profile
POST/api/audit/rules/togglerule 또는 패턴 전체를 활성화, 비활성화, 재평가
POST/api/audit/rules/reset사용자 지정 rule을 삭제하고 built-in 기본값으로 복원
PATCH/api/audit/policyblockThreshold, profile, 또는 둘 다 설정
GET/api/log선택적 필터와 함께 로그 항목 조회
GET/api/configconfig를 YAML로 조회
PUT/api/configconfig YAML 업데이트
GET/api/skillignore.skillignore 내용, 있으면 .skillignore.local 내용, ignore 통계 조회
PUT/api/skillignore.skillignore 내용 업데이트
GET/api/doctor모든 상태 검사 실행(JSON)
GET/api/healthliveness probe. 서버가 준비되면 200을 반환합니다
GET/api/version현재/최신 버전 + 업그레이드 가능 여부
POST/api/upgrade제자리에서 skillshare upgrade 실행(바이너리가 dev build인 경우 devMode: true 반환)
POST/api/restart로컬 UI 서버 재시작. 선택적으로 { "clearCache": true } body를 전달하면 먼저 캐시된 UI 자산을 지웁니다

제자리 업그레이드​

대시보드가 더 최신 CLI 릴리스가 있음을 감지하면, Update 대화상자와 Doctor 페이지의 Version 카드 모두에 Update now 버튼이 표시됩니다:

  1. UI가 POST /api/upgrade를 호출하여 호스트에서 skillshare upgrade를 실행합니다.
  2. 새 바이너리가 준비되면 UI가 POST /api/restart를 호출하여 로컬 서버를 재시작합니다.
  3. 브라우저는 GET /api/health를 폴링하며 새 서버가 준비되면 자동으로 새로고침합니다.

실행 중인 바이너리가 개발 빌드(version == "dev")인 경우, upgrade 엔드포인트는 devMode: true를 반환하고 UI는 디스크의 어떤 것도 수정하지 않은 채 재시작을 시뮬레이션합니다.

자동 새로고침이 완료되지 않으면, 대화상자는 백그라운드 서버를 다시 시작하기 위해 skillshare ui start를 실행하라고 안내합니다.

리버스 프록시​

공유 서버에서 reverse proxy(예: 홈랩, 내부 도구 플랫폼) 뒤에 대시보드를 실행하는 경우, --base-path를 사용하여 다른 서비스와 함께 하위 경로에서 서비스할 수 있습니다:

skillshare ui --base-path /skillshare --host 0.0.0.0 --no-open

또는 환경 변수를 통해:

SKILLSHARE_UI_BASE_PATH=/skillshare skillshare ui --host 0.0.0.0 --no-open

Nginx​

location /skillshare/ {
proxy_pass http://127.0.0.1:19420;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

Caddy​

handle_path /skillshare/* {
reverse_proxy 127.0.0.1:19420
}
팁

--base-path 없이는 대시보드가 이전과 동일하게 동작합니다 — localhost:19420에서 직접 접속할 때는 별도 설정이 필요 없습니다.

MCP 설정

MCP 페이지는 브라우저가 localhost 또는 http://192.168.1.20:19420과 같은 IP 주소로 대시보드를 열 때만 동작합니다. reverse proxy를 포함해 도메인 이름을 통하면 MCP 요청은 403을 반환합니다: DNS 리바인딩 공격은 항상 도메인 이름을 사용하기 때문입니다. 원격 머신에서 MCP 설정을 관리하려면 ssh -L 19420:127.0.0.1:19420 HOST로 포트를 포워딩한 후 http://localhost:19420을 여세요.

Docker 사용법​

Docker 내부에서 웹 UI를 사용하려면(최초 UI 다운로드를 위해 네트워크 접속이 필요합니다):

make playground

# 컨테이너 내부:
skillshare ui --host 0.0.0.0 --no-open

그런 다음 호스트 머신에서 http://localhost:19420을 여세요(포트 19420은 자동으로 매핑됩니다).

Project Mode​

웹 대시보드는 프로젝트 수준의 skill을 완전히 지원합니다:

cd my-project
skillshare ui -p

.skillshare/config.yaml이 존재하면(자동 감지) 단순히 skillshare ui만 실행해도 됩니다.

대시보드는 CLI와 마찬가지로 .skillshare/config.yaml을 읽고 쓰며, 프로젝트 로컬 target으로 sync하고, 설치 후 원격 skill 항목을 재조정합니다.

런타임 UI 다운로드​

skillshare ui는 최초 실행 시 일치하는 GitHub Release에서 미리 빌드된 UI 자산을 자동으로 다운로드합니다. 자산은 ~/.cache/skillshare/ui/<version>/에 캐시되어(XDG_CACHE_HOME을 따름) 이후 실행은 즉시, 오프라인으로 이루어집니다.

  • First run은 UI 자산(약 2MB)을 다운로드하기 위해 인터넷 연결이 필요합니다
  • Subsequent runs은 캐시된 자산을 사용합니다 — 네트워크가 필요 없습니다
  • On upgrade 시, 이전에 캐시된 버전은 자동으로 정리되며, 새 UI는 skillshare upgrade 중에 미리 다운로드됩니다
  • To clear the cache manually, skillshare ui --clear-cache를 실행하세요

Homebrew 참고 사항​

모든 설치 방법(Homebrew, 설치 스크립트, 수동 바이너리)은 런타임 UI 다운로드를 사용합니다. skillshare ui를 실행하면 최초 실행 시 GitHub에서 UI 자산을 자동으로 다운로드합니다. 이후에는 캐시된 자산이 오프라인으로 사용됩니다.

다운로드된 UI 캐시를 지우려면:

skillshare ui --clear-cache

아키텍처​

웹 UI는 일치하는 GitHub Release에서 런타임에 다운로드되고 디스크 캐시(~/.cache/skillshare/ui/<version>/)에서 제공되는 단일 페이지 React 애플리케이션입니다.

skillshare ui
├── Go HTTP server (net/http)
│ ├── /api/* → REST API handlers
│ └── /* → Cached React SPA (runtime download)
└── Browser opens http://127.0.0.1:19420

참고​