N

Nexa Slide 사용 설명서

v0.25.19 기준 최종 수정 2026-11-05

참고 이 설명서는 GitHub 저장소의 main 브랜치(CHANGELOG 기준 v0.25.19, 2026-10-30)를 바탕으로 썼습니다. 아직 정식 릴리스(태그·설치 파일)는 없으며 git clone으로 받아 씁니다. 그 뒤 2026-11-03까지의 커밋은 CHANGELOG 항목이 없어 버전 변경 이력에 따로 적었습니다. 앱 소개는 /apps/nexa-slide에서 볼 수 있습니다.

개요

Nexa Slide는 AI(LLM) 세션과 연결해 PPT와 엑셀 같은 시트를 만드는 로컬 웹 서비스입니다. 내 PC에서 작은 웹 서버를 띄우면 브라우저에 시작 페이지(허브)가 열립니다. 여기서 슬라이드 편집기(Studio)나 시트 화면을 열면 AI 세션이 초안을 쓰거나 화면에 남긴 요청을 받아 문서를 고칩니다.

  • 덱 JSON 하나가 원본입니다. 브라우저 화면(render.js)과 PPTX 변환(export_pptx.py)이 같은 규칙으로 각각 그립니다.
  • 편집 가능한 PPTX를 만듭니다. 슬라이드를 이미지로 굽지 않고 글상자·도형·표·차트·연결선·묶음 같은 PowerPoint 기본 개체로 내보내므로, PowerPoint에서 계속 고칠 수 있습니다.
  • 시트(v0.23.0에서 추가)는 두 번째 문서 종류입니다. 세션·요청·저장·기록을 슬라이드와 함께 쓰고, .xlsx·.xlsm을 가져오고 내보냅니다.
  • 화면과 PPT의 어긋남을 수치로 검증합니다(픽셀 비교 compare.py, JS↔Python 결과 비교 check_parity.py).
  • 서버는 Python 표준 라이브러리만 씁니다(외부 웹 프레임워크·CDN·npm 없음). PPTX·엑셀 내보내기에는 python-pptx와 그 의존 패키지가 필요합니다.
  • 디자인 템플릿 17종, 목적별 시작용 내용 21종(템플릿 유형 15 + 직접 쓴 예시 6), 슬라이드 유형 54개, 레이아웃 57종, 시트 테마 2종을 제공합니다.

AI 연결은 어떻게 동작하나

Nexa Slide 자체는 LLM API를 호출하지 않습니다. 대신 AI 코딩 도구 세션이 작업 공간의 파일을 읽고 고칩니다. 세션을 띄우는 방법은 두 가지입니다.

  • 웹 세션: 편집기 세션 칩에서 웹 세션 시작을 고르면 서버가 이 PC에 설치·로그인된 claude 또는 codex CLI를 실행합니다.
  • 수동 세션: 직접 연 세션(Claude Code, 또는 같은 규칙을 따르는 다른 도구)이 요청 감시를 겁니다.

아래 그림은 수동 세션입니다. 웹 세션도 하는 일은 같고, 서버가 요청을 살피며 턴을 실행하는 점만 다릅니다.

편집기 ──(요청 메모 남기기 · 보내기)──▶ decks/<덱>.requests.json
                                              │
                    watch_requests (AI 세션이 실행해 둔 요청 감시)
                       │  ├─ 하트비트 → 편집기 머리줄 "세션 연결됨"
                       │  └─ 요청 묶음 → AI 세션에 알림
                       ▼
               AI 세션 ──▶ 처리 중(working) → 덱 JSON 수정 → 완료(done) + 답변
                                              │
                                     편집기가 2초 안에 바뀐 덱을 다시 불러옴
  1. 편집기에서 요소나 영역을 골라 “이 표를 두 장으로 나눠 줘” 같은 요청 메모를 남기고 보냅니다.
  2. AI 세션이 띄워 둔 요청 감시(watch_requests)가 요청을 세션에 전달합니다.
  3. AI가 덱 파일을 고치고 요청을 “완료”로 바꾸며 답변을 남기면, 편집기가 자동으로 새 내용을 보여 줍니다.

작업 공간을 만들 때 생기는 CLAUDE.md(Claude Code용)와 AGENTS.md(Codex CLI·Gemini CLI·Cursor 등용)에 이 처리 규약과 명령이 적혀 있어, AI가 그대로 따라 합니다.

준비물과 시스템 요구사항

구성필수 여부쓰는 곳
Python 3.10 이상필수서버·빌드·내보내기 전부
python-pptx (1.0 이상)필수PPTX 내보내기
Pillow (10.0 이상)권장글자 폭 정밀 측정, compare.py 이미지 비교
git필수엔진 받기(git clone)
AI 코딩 도구필수(AI 연결 시)웹 세션: claude(Claude Code) 또는 codex(Codex CLI)를 서버를 실행하는 같은 사용자 계정에 설치·로그인. 수동 세션: Claude Code(터미널·VS Code 확장·Claude Desktop) 또는 Codex CLI·Gemini CLI·Cursor 등
Chrome 또는 Edge권장편집기 화면, PowerPoint 없는 PDF 내보내기, compare.py 헤드리스 캡처
Node.js 18 이상선택check_parity.py, Mermaid 다이어그램 렌더(render_mermaid.py, 처음 쓸 때 npx로 도구를 내려받음)
pymupdf선택PDF 첨부의 글·표·그림 추출(import_doc). requirements.txt에는 주석으로 있음. 없으면 pypdf가 설치된 경우 글만 추출
PowerPoint + PowerShell (Windows)선택편집기 “PowerPoint 렌더 미리보기”, 글꼴 포함 PPTX, PowerPoint를 거친 PDF
Excel (Windows)선택샘플 통합 문서로 시트 테마를 만들 때 도형 묶음 추출. 시트 편집·계산·내보내기에는 필요 없음
  • 운영체제: Windows·macOS·Linux 모두에서 서버·편집기·빌드·PPTX 내보내기가 됩니다. PowerPoint 렌더 미리보기와 글꼴 포함 PPTX, compare.py의 PowerPoint 쪽 비교만 Windows 전용입니다.
  • Claude Code나 Codex CLI를 쓰려면 그 도구의 계정이 필요합니다(Nexa Slide와 별개). 사용량과 요금은 그 계정에서 나갑니다. 편집과 내보내기는 CLI 없이도 됩니다.

주의 Windows에서는 설치 방식에 따라 python3 명령이 없거나 Microsoft Store 안내로 연결될 수 있습니다. 이 설명서의 python3을 py -3 또는 python 으로 바꿔 쓰세요. Git Bash에서는 python이 다른 래퍼일 수 있으니 python-pptx가 설치된 파이썬을 씁니다.

설치

엔진은 PC에 한 벌만 받아 두고, 슬라이드 내용은 엔진 밖의 작업 공간 폴더에 따로 둡니다.

macOS / Linux

mkdir -p ~/Projects && cd ~/Projects
git clone https://github.com/SosomLab/nexa-slide.git
python3 -m pip install --user -r nexa-slide/requirements.txt
python3 -c "import pptx, PIL; print('ok')"     # ok 가 나오면 준비 끝

Windows (PowerShell)

New-Item -ItemType Directory -Force D:\Projects | Out-Null; Set-Location D:\Projects
git clone https://github.com/SosomLab/nexa-slide.git
python3 -m pip install -r nexa-slide\requirements.txt   # python3 이 없으면 py -3 -m pip …
python3 -c "import pptx, PIL; print('ok')"

참고 가상 환경을 쓰려면 macOS는 python3 -m venv ~/.venvs/nexa && source ~/.venvs/nexa/bin/activate, Windows는 py -3 -m venv $HOME\.venvs\nexa; & $HOME\.venvs\nexa\Scripts\Activate.ps1 뒤에 같은 pip install을 실행합니다. 이때는 AI 세션에도 “~/.venvs/nexa의 python을 써”라고 알려 주세요.

글꼴 (선택)

기본 글꼴 세트 default는 운영체제 글꼴(맑은 고딕·Consolas)을 써서 따로 설치할 것이 없습니다. 추천 세트 modern(Pretendard · JetBrains Mono · D2Coding, 모두 SIL OFL)을 쓰려면 글꼴을 설치한 뒤 작업 공간에서 고릅니다.

운영체제설치
macOSbrew install --cask font-pretendard font-jetbrains-mono font-d2coding
Windowspwsh -NoProfile -File <엔진>\studio\install_fonts.ps1 (현재 사용자에게 설치, 관리자 권한 불필요)

글꼴 세트 바꾸기: 편집기 ⋯ → 글꼴 세트, 또는 python3 <작업 공간>/nexa.py set_fonts modern. PowerPoint·브라우저는 글꼴 설치 후 다시 열어야 보입니다.

AI CLI 준비 (웹 세션용)

CLI가 설치·로그인되어 있지 않으면 웹 세션이 실패합니다. 설치한 뒤에는 새 PATH가 반영되도록 서버를 다시 시작합니다(python3 studio/service.py restart).

도구설치로그인
Claude CodeWindows: irm https://claude.ai/install.ps1 | iex · macOS/Linux: curl -fsSL https://claude.ai/install.sh | bashclaude → 브라우저 로그인 → /exit
Codex CLIWindows: Codex 데스크톱 앱 설치(npm·Chocolatey로 깐 codex.exe는 명령 실행 보조 파일이 없음) · macOS/Linux: curl -fsSL https://chatgpt.com/codex/install.sh | shcodex login

서버가 부르는 비대화형 방식은 claude -p "Reply with exactly: OK" --output-format json --max-turns 1로 확인합니다.

서비스 시작과 종료

서버는 127.0.0.1(이 PC)에만 열립니다. 허브는 로그인이 필요하지만, nexa.py start로 바로 띄운 작업 공간 서버에는 로그인이 없으므로 그 포트를 다른 PC에 열지 않습니다.

시작 페이지(허브)

python3 studio/service.py start     # 엔진 폴더에서 → http://127.0.0.1:5599/
python3 studio/service.py stop      # 종료
python3 studio/server.py            # 또는 앞에서 실행(Ctrl+C 로 종료)

작업 공간 없이 띄우면 시작 페이지(허브) 로 뜹니다. 허브 포트는 5599이고, 실행 정보·로그는 사용자 설정 폴더에 두며 엔진 폴더에는 아무것도 쓰지 않습니다.

Windows에서는 python3 studio/service.py autostart on이 작업 스케줄러에 로그온 작업을 등록합니다(관리자 권한 불필요, off·status도 있음). 다른 OS에서는 설정할 내용을 안내만 합니다.

첫 로그인과 계정

허브는 내 PC에서도 로그인이 필요합니다. 처음 접속하면 어느 주소든 /setup으로 가고, 여기서 만든 계정이 관리자가 됩니다. 그 뒤로는 모든 접속이 /login을 거칩니다.

  • 계정·로그인 세션·접근 로그는 이 PC의 사용자 설정 폴더에만 있고, 엔진이나 작업 공간에는 들어가지 않습니다. clone한 PC마다 계정이 따로입니다.
  • 로그인은 마지막 사용부터 7일 유지됩니다(sessionDays). 한 주소에서 5번 틀리면 15분 잠깁니다.
  • 관리자는 /account에서 사용자 추가·삭제, 비밀번호 초기화, 역할 지정을 합니다.
  • 비밀번호를 잊으면 그 PC에서 python3 studio/auth.py reset-password <아이디>로 초기화합니다. 원격 초기화는 없습니다.

작업 공간 서버

작업 공간마다 실행기 nexa.py가 있어 엔진 경로를 매번 적을 필요가 없습니다.

python3 <작업 공간>/nexa.py start      # 그 작업 공간의 포트로 백그라운드 실행 (덱이 있으면 바로 Studio)
python3 <작업 공간>/nexa.py url        # 접속 주소
python3 <작업 공간>/nexa.py status     # 작업 공간·덱·서버·세션 연결·대기/처리 중 요청
python3 <작업 공간>/nexa.py restart    # 설정을 바꾼 뒤
python3 <작업 공간>/nexa.py stop       # 그 작업 공간 서버만 종료
  • 작업 공간 하나 = 서버 하나 = 요청 감시 하나 = AI 세션 하나. 작업 공간마다 포트가 다르면 여러 개를 함께 띄울 수 있습니다.
  • 같은 작업 공간에서 두 번째로 시작하면 거부하고 기존 주소를 알려 줍니다.
  • 포트를 다른 프로그램이 쓰고 있으면 “포트를 쓸 수 없다”며 멈춥니다. nexa-slide.json의 port를 바꾸거나 server.py --port auto(빈 포트 탐색)를 씁니다.

한 주소로 여러 작업 공간

허브는 http://127.0.0.1:5599/w/<이름>/을 그 작업 공간 서버로 넘겨 주고, 꺼져 있으면 띄웁니다. 그래서 포트 하나로 여러 Studio를 쓸 수 있습니다. 시작 페이지에서 작업 공간을 열면 기본으로 이 주소를 씁니다(hubProxy 설정).

참고 이 PC 밖에서 허브에 접속하려면 운영자가 Cloudflare 터널 같은 앞단을 직접 구성하고 허브 포트만 가리키게 해야 합니다. 저장소의 docs/server-admin.md·docs/auth.md를 보세요. 작업 공간 서버 포트는 그 범위 밖입니다.

시작 페이지

http://127.0.0.1:5599/를 열면 나오는 첫 화면입니다. Nexa Slide는 제작 도구(엔진)와 만든 슬라이드를 물리적으로 나누므로, 시작 페이지는 먼저 “어디에 만들지”를 정하고 그다음 Studio(편집기)로 넘깁니다.

탭내용
시작새 슬라이드 만들기, + 새 시트, 폴더·저장소 열기, 최근 작업(서버·세션 상태, 시작/중지), 서버 요청(엔진 개발 대기열, 운영자용)
튜토리얼작업 공간 정하기 → 템플릿·방향 → Studio 편집 → AI 세션 요청 → 발표·내보내기 단계 안내와 최근 추가된 기능
데모엔진 예제를 기준 폴더의 nexa-slide-demo/로 처음 한 번 복사해 엽니다. 마음껏 고쳐도 되고, 처음 상태로 돌리려면 폴더를 지우고 다시 엽니다
템플릿+ 회사 템플릿 만들기(마법사), 추천 디자인 템플릿과 더 보기, 시작용 내용, 시트 테마. 카드마다 미리 보기
샘플 둘러보기참고할 사이트를 등록·삭제하고 새 탭으로 엽니다
템플릿 검토템플릿·레이아웃 후보와 참고 자료를 미리 보고 검토·승인하는 화면(/review)

새 슬라이드 만들기

  1. 제목·템플릿·시작용 내용을 고릅니다. 템플릿 목록은 먼저 추천 7개를 보여 주며, 쓰고 미리 본 기록을 무게로 뽑으므로 새로 고칠 때마다 바뀝니다. 기존 파일에서 시작하려면 “또는 PPT 파일로 시작” 을 씁니다.
  2. 목적·대상·작성 방향·참고 자료를 적습니다. 파일을 첨부하거나 클립보드에서 붙여 넣을 수 있습니다(작업 공간 materials/에 보관). 이 내용은 작업 공간의 BRIEF.md에 저장되고, AI가 초안을 쓸 때 기준이 됩니다.
  3. 저장 위치를 정합니다. 정하지 않으면 운영체제 문서 폴더 아래 NexaSlide/<제목>에 만듭니다. 고른 폴더는 저장소 루트가 되고, 작업 공간은 그 아래 slides/에 만듭니다(이름은 바꿀 수 있음).
  4. 필요하면 “AI 세션에 초안 작성 요청 남기기” 를 켭니다. 첫 슬라이드에 대기 요청이 남고, AI 세션이 연결되는 순간 전달됩니다.
  5. “만들고 Studio 열기” 를 누르면 작업 공간을 만들고 그 서버를 띄워 편집기로 이동합니다.

양식 아래 “또는 명령으로 만들기” 에는 같은 내용을 채운 init_workspace.py 명령이 PowerShell·bash용으로 보이고, 복사 버튼이 있습니다. 버튼과 명령은 같은 결과를 냅니다.

  • 포트: 비워 두면 5600부터 비어 있고 다른 작업 공간이 쓰지 않는 포트를 제안합니다.
  • 미리 보기: 고른 템플릿 × 시작용 내용으로 실제로 빌드한 슬라이드를 창으로 봅니다. 내용을 고르지 않으면 레이아웃 견본을 보여 줍니다. “이 조합으로 만들기”로 양식에 그대로 옮깁니다.

주의 Windows에서 경로에 &가 있으면(예: S&OP) pyenv-win의 python3이 명령을 자를 수 있습니다. 시작 페이지가 경고와 함께 실제 파이썬 경로로 명령을 바꿔 보여 주지만, 가능하면 폴더 이름에서 &를 빼세요.

기본 메뉴와 기준 폴더

시작 페이지와 Studio 왼쪽 위 ☰ 메뉴로 홈·새로 만들기·열기·Studio·튜토리얼·데모·템플릿·샘플·최근 작업(찾기)·기준 폴더 설정으로 이동합니다.

기준 폴더는 운영체제 문서 폴더(Windows는 OneDrive로 옮긴 위치 포함, macOS ~/Documents, Linux XDG 문서 폴더) 아래 NexaSlide/입니다. 메뉴의 기준 폴더 설정 또는 환경변수 NEXA_SLIDE_PROJECTS로 바꿀 수 있습니다. 사용자 설정은 Windows %APPDATA%\nexa-slide\settings.json, macOS ~/Library/Application Support/nexa-slide/settings.json, Linux ~/.config/nexa-slide/settings.json에 있습니다.

작업 공간 만들기

작업 공간은 문서를 만드는 쪽의 폴더입니다. 지정한 폴더는 저장소 루트로, 기초 자료를 모으고 관련 소스를 개발하는 곳이며(구조 자유) 작업 공간은 그 아래 slides/에 만듭니다. 시작 페이지 대신 명령으로도 만들 수 있습니다.

python3 ~/Projects/nexa-slide/studio/init_workspace.py ~/Projects/my-talk --title "신제품 소개" --build
python3 ~/Projects/my-talk/slides/nexa.py start          # → http://127.0.0.1:<포트>/
python3 D:\Projects\nexa-slide\studio\init_workspace.py D:\Projects\my-talk --title "신제품 소개" --build
python3 D:\Projects\my-talk\slides\nexa.py start

만들어지는 것(이미 있는 파일은 건드리지 않음):

my-talk/             저장소 루트 (md 파일과 표식만 더함)
├─ SLIDES.md         개념과 서버 실행 방법
├─ .nexa-slide.json  작업 공간 폴더 이름을 적은 표식
├─ CLAUDE.md · AGENTS.md   없을 때만
slides/
├─ nexa-slide.json   선택만: 포트 · 제목 · 엔진 위치 · 템플릿 · 글꼴 세트 · 로고 파일
├─ .env.example · .env     PC별 엔진 위치 (.env 는 git 제외)
├─ nexa.py           실행기 (start · stop · status · build_deck · …)
├─ CLAUDE.md         Claude Code 세션 안내(요청 감시·처리 규약·명령)
├─ AGENTS.md         그 밖의 AI 도구 안내(같은 규칙)
├─ .claude/settings.json   Claude Code 훅(편집기에 세션 활동 표시)과 권한
├─ content/          내용 원본 <덱>.json  ← AI 가 초안을 여기에 씁니다
├─ decks/            덱 <덱>.json(편집기가 고치는 대상) · 요청 메모 <덱>.requests.json
├─ assets/brand/     로고(처음엔 자리 표시 이미지 — 자기 로고 PNG 로 바꿉니다)
└─ out/              PPTX · 렌더 · 세션 상태 (git 제외)

주요 옵션:

옵션뜻
--title "제목"작업 공간 제목
--template <이름>디자인 템플릿(기본: 시작용 내용이 정한 것, 없으면 lecture)
--starter <이름>시작용 내용을 복사(아래 표)
--deck <이름>첫 덱 이름(기본 intro)
--port N 또는 auto포트(생략하면 빈 포트 자동)
--build만든 뒤 내용 원본을 덱으로 빌드
--purpose --audience --direction … --material …작성 브리프 BRIEF.md (방향·자료는 여러 번 줄 수 있음)
--ask-draft브리프로 초안을 써 달라는 대기 요청을 남김(--build 포함)
--slides-dir <이름> · --flat루트 아래 작업 공간 폴더 이름 · 준 폴더 자체를 작업 공간으로(예전 방식)
--pptx-import <파일>첫 덱을 PowerPoint 파일에서(--starter와 함께 못 씀)
--sheet-import <파일> · --sheet-theme <이름>첫 시트를 엑셀 파일에서 · 시트 테마로
--forcenexa-slide.json·nexa.py만 다시 씀

이미 있는 작업 공간에 다시 실행하면 없는 파일(AGENTS.md 등)만 만듭니다. git 저장소라면 out/·decks/.history/·.env·nexa-slide.local.json은 .gitignore로 빠지고 나머지를 커밋하면 됩니다.

여러 PC에서 같은 저장소를 쓸 때는 PC마다 다른 값을 커밋하지 않는 이 두 파일에 넣습니다. slides/.env에는 NEXA_SLIDE_HOME(엔진 위치), slides/nexa-slide.local.json에는 포트 같은 덮어쓸 값을 둡니다. 예전 작업 공간은 python3 slides/nexa.py update_launcher로 올립니다.

시작용 내용(starter)

목적에 맞는 장 구성과 예시 내용으로 시작합니다. 내용은 가상의 예시이므로 숫자·이름·날짜를 바꿔 씁니다.

묶음시작용 내용
템플릿 유형 15개(목적별 기본 구성, 11~17장)research-report 리서치 보고서 · strategy-plan 전략·연례 계획 · board-decision 경영 결정 요청 · periodic-report 정기 업무 보고 · investor-pitch 투자 피치 · ir-finance IR·재무 · sales-proposal B2B 제안서 · case-story 사례·회고 · marketing-campaign 마케팅 캠페인 · consulting 컨설팅 · lecture-theory 이론 강의 · training-course 직무 교육 · classroom 수업·학생 발표 · public-policy 공공·정책 · talk-story 강연·포트폴리오
직접 쓴 예시 6개lecture-course 강의 교안 3일 · schedule 일정·로드맵 · story-retro 프로젝트 회고 · notice-onboarding 사내 공지·온보딩 · rfp-owner 제안요청서 요약 · rfp-response 제안서
python3 <엔진>/studio/init_workspace.py <폴더> --title "월간 보고" --starter periodic-report --template graphite

강의 교안 시작용 (lecture-course)

여러 날에 걸친 강의 교안을 같은 뼈대로 쓰기 위한 시작용입니다. 공통 표지·전체 목차·EoD(content/_common.json), 과정 안내 장 ch00(본문 24장)과 이론 장 ch01(본문 12장, Mermaid 다이어그램 포함)이 들어 있습니다.

python3 <엔진>/studio/init_workspace.py <작업 공간> --title "과정 이름" --starter lecture-course
python3 <작업 공간>/nexa.py build_deck ch00 --force
python3 <작업 공간>/nexa.py build_deck ch01 --force
python3 <작업 공간>/nexa.py start

디자인 템플릿

색·글꼴·글자 크기·검사 기준은 엔진의 템플릿에 있고, 작업 공간은 nexa-slide.json의 template으로 이름만 고릅니다.

템플릿특징
lecture (기본) · lecture-large강의·교재 16:9 / 글자만 일괄 확대
brief · notice · schedule · proposal목적별(결정·공지·일정·RFP) 색·모서리
keynote · archive · blueprint · swiss어두운 무대·금색 / 종이 미색·테라코타·명조 / 도면 청록·주황 / 흰 바탕·빨강 하나
editorial · ledger · signal · forest미색·명조·진홍 / 크림·남색·금색 / 노랑·검정·빨강 / 숲녹색·크림·테라코타
graphite · casebook · electric흰 바탕·회색 단계만·모서리 없음 / 크림·테라코타·어두운 사진 / 흰 바탕·전기 파랑 하나

템플릿 탭의 + 회사 템플릿 만들기는 엔진 템플릿을 바탕으로 색 5개와 로고를 넣어 작업 공간 전용 템플릿을 만듭니다.

편집기 사용법

시작 페이지에서 작업 공간을 열거나 작업 공간 서버 주소(nexa.py url)를 브라우저로 열면 Studio가 나옵니다. 화면 글은 ☰ 메뉴의 표시 언어에서 한국어·영어로 바꿀 수 있습니다.

화면 구성

영역구성
머리줄☰ 덱 목록 · 덱 탭(오른쪽 클릭으로 제목 바꾸기·복제·시작 덱·삭제) · 저장 상태 · 세션 칩 · ▶ 발표 · 기록 · 내보내기 ▾ · ⋯ 더보기(글꼴 세트·템플릿·단축키·배치 초기화)
왼쪽 레일썸네일(끌어서 순서 바꾸기·복제·삭제) · 메모/요청/처리 중/검사 배지 · + 새 슬라이드
모드 바✎ 편집(E) · ◎ 선택(M) · ✐ 그리기(D) · 실행 취소 · + 추가 · ✨ 레이아웃 고치기 · ✨ 다듬기
서식 줄편집 모드에서 요소를 고르면 나타나 그 종류에서 자주 쓰는 설정을 보여 줌 — 글꼴·크기·글자색·굵게·정렬·줄 간격·채우기·테두리·복제·삭제·잠금·✥ 위치 조정
아래노트 · 개요 · 검사 탭 · 쪽 이동 · 확대(10~300%) · ⛶ 최대화
오른쪽 패널속성 · 요청(최근 목록·상태·답변·후속) · 기록(자동 백업) · 변경(변경 원장)

색은 임의의 HEX가 아니라 템플릿 색 팔레트에서 고릅니다.

세 가지 모드

모드하는 일
✎ 편집 (E)클릭으로 선택, Shift/Ctrl+클릭이나 빈 곳 끌기로 여러 개 선택, 끌어서 이동(8px 격자와 스마트 가이드, Shift = 자유), 핸들로 크기 조절, 두 번 클릭 또는 Enter로 글자 직접 편집(Esc·Ctrl+Enter 종료)
◎ 선택 (M)요소를 누르면 그 자리에 메모 팝오버. 종류별 빠른 칩(다듬기·더 길게·더 짧게, 표 두 장으로 나누기 등). Enter = 추가, Shift+Enter = 줄바꿈
✐ 그리기 (D)▭ 박스 · 〰 펜 · 📍 핀으로 영역을 표시하고 메모. 그 영역과 겹치는 요소가 요청 대상이 됩니다

슬라이드 추가와 유형 바꾸기

+ 새 슬라이드를 누르면 슬라이드 추가 창이 열립니다.

  • 유형으로: 목적별 8묶음(시작·도입, 메시지, 근거·데이터, 비교·판단, 과정·계획, 사람·사례, 학습·확인, 마무리·부록)의 슬라이드 유형을 미리보기 카드로 고릅니다. 고른 유형은 예시 내용이 채워진 채 들어갑니다.
  • 레이아웃으로: 레이아웃 이름으로 고릅니다.
  • 유형 바꾸기: 썸네일 오른쪽 클릭 → “유형 바꾸기”. 제목·노트는 남기고, 같은 역할의 본문 내용을 새 유형으로 옮깁니다(Ctrl+Z로 되돌리기).
  • 그 밖의 장 명령: 슬라이드 숨기기(발표·인쇄·PDF에서 건너뜀), 레일의 구분 접기, 다른 덱에서 장 가져오기.

요소 넣기

+ 추가는 검색되는 삽입 패널을 엽니다. 같은 항목을 명령 팔레트(Ctrl+K 또는 /)에서도 부를 수 있습니다.

묶음항목
기본글자, 글머리, 칩, 상자, 원, 화살표
데이터표, 코드(35개 언어), 차트, 시트에서 표·차트
미디어그림 파일(끌어다 놓기·붙여넣기도 가능), 로고, 다이어그램 코드(Mermaid)
도형 · 아이콘 · 다이어그램PowerPoint 도형 25종, 내장 아이콘 33종, 다이어그램 틀 9종
  • 표: 고른 표 안의 셀을 눌러 바로 고칩니다. 끌어서 범위를 고르고, 행·열 띠로 줄을 고르거나 옮기며, 병합·셀별 채움과 테두리·줄무늬를 정합니다.
  • 차트: 세로·가로 막대, 누적과 100% 누적, 꺾은선, 영역, 원형, 도넛, 보조 축 콤보. ▦ 표로 편집이 데이터 격자를 열고, Excel에서 붙여 넣은 탭 구분 줄도 칸으로 읽습니다.
  • 묶음과 효과: Ctrl+G로 묶고 Ctrl+Shift+G로 풉니다(표·차트는 묶지 못함). 회전·뒤집기, 투명도, 그림자, 광선·부드러운 가장자리, 그림 자르기·톤·프레임, 링크, 대체 텍스트를 지원합니다.
  • 글 표기: **굵게**·*기울임*·__밑줄__·~~취소선~~·위/아래 첨자를 겹쳐 쓸 수 있습니다.
  • 찾기와 정리: Ctrl+H로 덱 전체를 찾아 바꾸고, 🖌로 서식을 복사하며, 검사 탭의 ⚒ 자동 정리는 AI 없이 슬라이드 밖 요소와 넘치는 상자를 고칩니다.

저장·기록·발표

  • 자동 저장: 편집 0.7초 뒤 저장합니다. 바뀐 것이 없으면 저장하지 않습니다. Ctrl+S는 즉시 저장.
  • 기록: 저장할 때마다(덱마다 최근 50개)와 빌드로 덮어쓰기 전에 자동 백업을 남깁니다. “되돌리기”로 그 시점 덱으로 돌아갑니다.
  • 변경: AI 등이 밖에서 덱을 바꾸면 편집기가 다시 불러오고, 바뀐 장·요소를 변경 탭·썸네일 배지·캔버스의 파란 점선으로 보여 줍니다. 아래 “함께 쓰기와 변경 기록”을 보세요.
  • 발표: F5 처음부터 · Shift+F5 현재부터 · →/Space 다음 · ← 이전 · N 노트·경과 시간 · P 발표자 보기(새 창, 쪽 동기화) · Ctrl+P 펜 · Ctrl+L 레이저 · E 지우기 · Esc 끝.

단축키

범주키
모드E 편집 · M 선택 · D 그리기
슬라이드PageUp/PageDown · Home/End
확대Ctrl+휠 · Ctrl+= / Ctrl+- · Ctrl+0 맞춤 · Ctrl+1 100% · Space+끌기 이동
편집Ctrl+Z/Y · Ctrl+C/X/V/D · Ctrl+A 전체 선택 · Ctrl+B 굵게 · Ctrl+G / Ctrl+Shift+G 묶기 · Ctrl+H 찾기 · Ctrl+Shift+C/V 서식 복사 · Delete · Enter/F2 글자 편집 · Ctrl+S 저장
순서Ctrl+] / Ctrl+[ (앞·뒤로) · Alt+Ctrl+] / Alt+Ctrl+[ (맨 앞·맨 뒤)
기타F5 / Shift+F5 발표 · Ctrl+K 또는 / 명령 팔레트 · Ctrl+Shift+M 최대화 · Ctrl+\ 오른쪽 패널 · Esc 닫기 · ? 도움말

시트 (엑셀 문서)

시트는 덱과 같은 작업 공간에 있는 문서로, JSON으로 저장됩니다(decks/<id>.json, "kind": "sheet"). 엑셀과 비슷한 화면에서 고치고 슬라이드와 똑같이 요청을 남깁니다. 편집 원본은 JSON이고, 엑셀 파일은 가져오기·내보내기 대상입니다.

시트 만들기

  • 시작 페이지: + 새 시트에서 시트 테마(basic·screen-spec)와 페이지를 고릅니다. 테마 카드에 미리 보기가 있습니다.
  • 엑셀 파일로 시작: .xlsx·.xlsm을 고르면 값·수식·서식·그림·매크로까지 첫 시트가 됩니다. 원본은 materials/에 둡니다.
  • 편집기: 덱 메뉴의 “새 시트(엑셀)”. 명령: init_workspace.py --sheet-import <파일> 또는 --sheet-theme <이름>.
  • 회사 테마: python3 <작업 공간>/nexa.py sheet_theme import <샘플.xlsx>가 샘플 통합 문서에서 팔레트·표지 글 크기·로고를 뽑습니다.

편집과 수식

영역할 수 있는 일
셀병합, 틀 고정, 테두리, 표시 형식, 조건부 서식, 목록 유효성, 채우기 핸들, 메모(Shift+F2), 셀 서식(Ctrl+1), 서식 복사, 열 너비·행 높이 자동 맞춤
데이터정렬, 자동 필터(Ctrl+Shift+L, 문서에 저장: 값 검색, 텍스트·숫자 조건, 상위 10, 색 기준 필터·정렬), 중복 제거, 텍스트 나누기, 찾기·바꾸기
수식함수 자동 완성과 인수 안내, 편집 중 참조 색 표시, 고른 조각을 값으로 바꾸는 F9, #DIV/0! 같은 오류 칸의 설명
최신 엑셀넘침이 있는 동적 배열(FILTER·SORT·UNIQUE·SEQUENCE 등, H2#), 표(표1[열]·[@열]), 이름 정의, LET, LAMBDA와 MAP·BYROW·REDUCE·SCAN·MAKEARRAY, GROUPBY·PIVOTBY, 배열 상수
링크HYPERLINK 칸: Ctrl+클릭(⌘+클릭)으로 문서 안을 이동하거나 https:·http:·mailto:·ftp:·www. 주소를 새 탭으로 엽니다
그림고르기·옮기기·크기 조절·지우기, 고른 그림을 요청 대상으로 지정
화면확대·축소(문서마다 기억), 긴 글을 빈 옆 칸으로 넘겨 표시, 300행 초과 시 가상 스크롤

오른쪽 패널은 슬라이드 편집기와 같은 네 탭(속성 · 요청 · 기록 · 변경)입니다. 시트 요청의 대상은 셀 범위나 그림이고, 요청 칸 아래 예시 칩은 자주 쓰는 문장을 채워 줄 뿐 보내지는 않습니다. 요청이 끝나면 AI가 바꾼 셀이 강조되고, 요청 카드나 변경 탭에서 보거나 되돌릴 수 있습니다. 그사이 사람이 고친 셀은 그대로 둡니다.

엑셀 가져오기와 내보내기

  • 가져오기: 값, 수식, 공유 수식, 서식, 색, 테두리, 병합, 크기, 틀 고정, 숨긴 행·열, 유효성, 조건부 서식, 표, 이름 정의, 자동 필터, 메모, 그림, 매크로.
  • 내보내기: .xlsx, 매크로가 있으면 .xlsm. 수식은 엑셀 파일 형식과 계산값으로 씁니다.
  • 복사·붙여넣기: 시트와 엑셀·웹 표 사이에 서식이 함께 옮겨집니다.
  • 계산기가 읽지 못하는 수식(다른 통합 문서 참조 등)은 엑셀이 마지막에 계산한 값을 둡니다.

주의 색 기준 필터 조건은 파일에 쓰지 못해 범위와 가린 행만 남습니다. 날짜 묶음·평균 위/아래 같은 동적 필터는 가져올 때 경고와 함께 빠집니다.

VBA 매크로

매크로가 있는 문서면 시트 머리줄에 { } VBA가 나옵니다.

  • 표준 모듈의 Function을 칸에서 부르면(=이름(…)) 엑셀 없이 브라우저 Worker에서 계산합니다.
  • 코드 창에서 모듈 목록을 보고, 코드를 고치고(Ctrl+S 적용), 표준 모듈을 더하거나 지우고, 못 쓰는 문법 경고를 봅니다. 시트에 쓰는 코드나 With·GoTo·New 같은 문법이 든 함수는 계산하지 않고, 그 칸은 엑셀이 저장한 값을 둡니다.
  • 실행에는 배열 크기·문자열 길이·호출 깊이·시간 한도가 있고, 넘으면 그 칸은 #VALUE!가 됩니다.

주의 매크로는 엑셀에서 열면 엑셀이 허용하는 일을 모두 할 수 있습니다. 자동 실행 이벤트, Shell·CreateObject·Declare, 파일·레지스트리·네트워크 접근 줄은 가져올 때와 코드 창에서 표시합니다. 그런 줄이 있으면 내보낼 때 매크로 포함(.xlsm)·제외(.xlsx)·취소를 묻습니다. 믿을 수 있는 매크로 파일만 여세요.

시트를 슬라이드에 연결

슬라이드 편집기에서 + 추가 → 시트에서 표·차트를 고르면 시트 범위를 표나 차트(첫 열 = 범주, 첫 줄 = 계열)로 넣고 연결을 남깁니다. 덱을 열 때 원본이 바뀌었으면 요소가 따라 바뀝니다(실행 취소 한 번으로 되돌림).

AI 세션과 함께 작업하기

전체 흐름

단계하는 일
① 만들기시작 페이지나 init_workspace.py로 작업 공간을 만들고 서버를 띄웁니다. AI는 아직 연결 전입니다
② AI 세션 연결세션 칩의 웹 세션 시작, 또는 작업 공간 폴더에서 AI를 열고 “요청 감시 시작” → 칩에 연결이 표시됩니다
③ 고치기 반복화면에서 요청 남기기 → 보내기 → AI 처리 → 완료 + 답변 → 화면 자동 갱신
④ 마무리검사 ERROR 0 → 내보내기 → (git이면) 커밋

연결 전에 남긴 요청은 잃어버리지 않습니다. requests.json에 대기로 남아 있다가 세션이 돌기 시작하면 전달됩니다.

웹 세션

편집기나 시트의 세션 칩(또는 시작 페이지의 최근 작업 항목)을 눌러 웹 세션 시작을 고르고 에이전트(claude·codex)와 모델을 정합니다. 서버가 CLI를 자식 프로세스로 실행해 요청 묶음을 한 턴씩 처리합니다. 진행 상황은 세션 진행 패널에 나오고, 세션 ID가 표시되어 claude --resume <ID>로 확인할 수 있습니다.

항목동작
권한 (Claude)claude -p --restricted --permission-mode dontAsk로 돌아 동작마다 승인하는 사람이 없습니다. 파일 도구는 작업 공간으로 제한되고, 셸 명령은 python3 nexa.py … 같은 허용 명령으로 좁혀지며, MCP·curl·wget·PowerShell·웹 도구는 막힙니다
권한 (Codex)codex exec --sandbox workspace-write, 승인 정책 never, 샌드박스 네트워크 접근 켬으로 돕니다
선택 권한웹 검색·git 기록·push·저장소 루트 접근은 기본 꺼짐입니다. 관리자가 설정에서 켠 뒤 세션마다 고릅니다. Claude만 해당합니다
기본 한도턴당 도구 40회, 턴 20분, 유휴 60분 뒤 중지, PC당 동시 세션 3개, 비용 상한 없음(sessionBudgetUsd)
사용량턴마다 CLI 계정의 사용량이나 API 요금을 씁니다
로그턴 로그는 작업 공간 out/.studio/sessions/에 남습니다

주의 같은 작업 공간에서 웹 세션과 터미널 감시를 함께 쓸 수 없습니다. AI가 읽는 첨부를 포함한 세션 내용은 그 도구의 제공자에게 그 약관에 따라 전달됩니다.

세션은 첨부를 읽을 때 import_doc(Word·Excel·PDF)과 import_pptx를 씁니다. 요청 카드의 후속 요청으로 대화를 이으면 앞선 요청과 답이 함께 전달됩니다.

이 장의 나머지는 수동 세션과 두 방식에 공통인 단계를 설명합니다.

1단계 — Claude Code 세션 열고 감시 걸기

터미널

cd '<작업 공간>'
claude

대화창에 한 줄 입력하거나, 작업 공간이 제공하는 슬래시 명령 /nexa-slide-session을 씁니다.

이 작업 공간의 nexa-slide 요청 감시를 시작해 줘.

Claude가 CLAUDE.md를 읽고 Monitor 도구로 다음 감시를 띄웁니다(직접 적어 줘도 됩니다).

python3 <작업 공간>/nexa.py watch_requests --stream --takeover --label "<세션 이름>"     (timeout 1800000)
  • VS Code: 파일 → 폴더 열기로 작업 공간(또는 그 저장소)을 열고 Claude Code 대화창에 같은 한 줄. 편집기는 명령 팔레트 Simple Browser: Show로 VS Code 안에서 볼 수도 있습니다.
  • Claude Desktop: Code(로컬 폴더) 세션을 만들고 폴더로 작업 공간을 고른 뒤 같은 한 줄. 내장 브라우저 패널에서 편집기를 열면 Claude가 화면을 직접 보며 확인할 수도 있습니다.
  • 작업 공간이 아닌 폴더(상위 저장소 등)에서 연 세션은 작업 공간의 CLAUDE.md를 자동으로 읽지 않습니다. “<작업 공간>은 nexa-slide 작업 공간이야. 그 폴더의 CLAUDE.md를 먼저 읽고 요청 감시를 걸어 줘”처럼 경로를 넣어 요청하세요. 저장소 루트 CLAUDE.md에 “슬라이드 작업은 slides/ — 먼저 slides/CLAUDE.md를 읽는다” 한 줄을 넣어 두면 편합니다.

참고 감시(--stream)는 약 30분(1780초) 뒤 스스로 끝나며 {"event":"ttl"}을 냅니다. Claude는 CLAUDE.md 규약에 따라 같은 명령으로 다시 겁니다. --takeover는 남아 있던 이전 감시를 정리하고 넘겨받는 옵션입니다.

2단계 — 연결 확인

편집기 머리줄 칩뜻
초록 세션 연결됨감시가 돌고 있음 — 보낸 요청이 바로 전달됩니다
파랑 세션 처리 중 nAI가 요청 n건을 처리 중
회색 세션 연결 없음세션이 없음 — 요청은 저장되고 세션이 시작되면 전달됩니다. 칩 메뉴에 웹 세션 시작이 있습니다

Claude Code를 쓰면 칩에 세션 활동도 보입니다 — “대화 작업 중 N분째 · 요청 n 대기”, “요청 처리 중”, “대기 — 요청 바로 처리”, “다른 세션 N”. 작업 공간의 .claude/settings.json 훅이 이 정보를 남기며, 처음 열 때 Claude Code가 신뢰 확인을 물을 수 있습니다.

3단계 — 첫 초안

만들 때 초안 요청을 켰다면 연결하자마자 “BRIEF.md의 목적·대상·작성 방향·참고 자료로 이 덱의 초안을 써 주세요” 요청이 전달됩니다. 켜지 않았다면 대화창에 직접 “BRIEF.md로 초안 써 줘”라고 해도 같습니다. AI는 다음 순서로 일합니다.

  1. BRIEF.md를 읽고 nexa.py layout_samples로 레이아웃과 필드를 확인합니다.
  2. content/<덱>.json(내용 원본)을 씁니다. 장을 고를 때는 내용 성격에 맞는 슬라이드 유형을 기준으로 삼습니다.
  3. build_deck <덱> --force로 덱을 만들고 check_layout <덱>으로 겹침·넘침·최소 글자 크기 ERROR를 없앱니다.
  4. 요청을 완료로 바꾸고 요약과 확인 질문(자료에 없어 비워 둔 것)을 답변으로 남깁니다.

명령으로 바로 맡기고 싶다면 이렇게 요청할 수 있습니다.

아래 내용으로 content/intro.json 초안을 써 줘. 레이아웃은 python3 nexa.py layout_samples 로 확인하고,
build_deck intro --force → check_layout intro 로 ERROR 를 줄인 뒤 편집기에서 볼 수 있게 해 줘.
- 주제: <발표 주제>
- 대상·시간: <누구에게, 몇 분>
- 장 수: <예: 10~12장>
- 자료: <참고할 파일 경로·문서·URL> (근거가 없는 수치·인용은 지어내지 말 것)

4단계 — 편집기에서 요청 메모 남기기

무엇을어떻게
요소 하나◎ 선택(M) 으로 요소를 누르고 메모(Enter) — 예: “이 표를 두 장으로 나눠 줘”
영역✐ 그리기(D) 로 박스·펜·핀을 그리고 메모
슬라이드 전체오른쪽 요청 탭의 슬라이드 요청 칸에 메모(Enter = 남기기, Shift+Enter = 줄바꿈)
보내기아래 바 “요청 N개 보내기”. 연결되어 있으면 8초 조용해진 뒤 전달되고, “지금 보내기” 는 바로 전달
검사 결과 고치기✨ 레이아웃 고치기 — 이 슬라이드의 검사 결과를 담아 바로 요청
내용 다듬기✨ 다듬기 — 스타일을 유지하며 논리·정렬 정리 요청

메모는 먼저 초안으로 쌓이고(캔버스 번호 배지, 레일 ✎ 배지), 보내면 대기 → 처리 중 → 완료 순서로 바뀝니다. 아직 남기지 않은 입력도 브라우저에 보관되어 슬라이드를 옮기거나 새로 고쳐도 사라지지 않습니다.

AI가 확인이 필요하면 상태를 대기로 둔 채 답변에 질문을 남깁니다. 카드의 후속 요청으로 답하면 대상을 물려받은 새 요청이 앞선 대화와 함께 전달됩니다. AI가 새 덱을 만들면 덱 탭이 바로 늘어나고 “새 덱 — [열기]” 안내가 뜹니다.

대화창에서 바로 고치기

요청 메모 없이 AI 대화창에 말해도 됩니다 — “3장 제목을 결론형으로 바꾸고 표는 6행 이하로”, “전체 장 수를 10장으로 줄여 줘”. AI는 content/를 고치고 다시 빌드하며, 편집기는 바뀐 덱을 자동으로 불러옵니다.

주의 편집기에서 직접 고친 슬라이드가 있으면 build_deck --force가 멈추고 알립니다. 내용 원본으로 다시 빌드하면 그 수정이 사라지기 때문입니다. AI에게 “편집기에서 고친 내용을 content에 옮기고 다시 빌드해 줘”라고 하세요. 덮어쓰기 전 상태는 기록에서 되돌릴 수 있습니다.

그 밖의 AI 도구 (Codex CLI · Gemini CLI · Cursor 등)

이 도구들은 작업 공간의 AGENTS.md를 읽습니다(Gemini CLI는 기본으로 GEMINI.md를 읽으므로 AGENTS.md를 GEMINI.md로 복사하거나 설정 contextFileName에 넣습니다). 오래 도는 명령의 알림을 받을 수 없으므로 1회 대기 반복 방식으로 연결합니다.

이 폴더는 nexa-slide 슬라이드 작업 공간이야. 먼저 CLAUDE.md 를 읽어(너에게도 같은 규칙이 적용돼).
1) python3 nexa.py watch_requests --label "<도구 이름>" 을 실행해. 요청이 생길 때까지 기다렸다가 목록을 출력하고 끝난다.
2) 요청마다 status 를 working → 덱 수정 → content 에도 반영 → status 를 done, reply 에 한두 문장.
3) 끝나면 1) 을 다시 실행해. 내가 멈추라고 할 때까지 반복해.

셸을 쓸 수 없는 도구는 감시 없이, 요청을 보낸 뒤 “decks/의 requests.json에서 status가 open인 요청을 처리해 줘”라고 말하면 됩니다. 이 도구들에는 세션 활동 표시가 없습니다(연결·처리 중 칩만).

끝낼 때와 이어서 할 때

  • AI 세션을 닫으면 감시가 멈추고 칩이 “연결 없음”이 됩니다. 서버는 python3 <작업 공간>/nexa.py stop.
  • 다음에 이어서 할 때: nexa.py start → AI 세션 열기 → “요청 감시 시작해 줘”.

함께 쓰기와 변경 기록

변경 원장

문서의 모든 쓰기를 출처(편집기·AI·빌드·외부)와 함께 decks/.history/<덱>/changes.jsonl에 덱당 최근 1,000건까지 기록합니다. 변경 탭은 출처로 걸러 보고, 최근 수정 대상을 보여 주며, 직전으로가 그 변경 직전 백업으로 되돌립니다(최근 50개를 넘어 지워진 백업은 쓸 수 없습니다).

동시 편집

  • 병합 저장: 다른 창이나 AI가 다른 곳을 고쳤으면 둘 다 남습니다. 정말 충돌하면 사람이 AI보다, 수정이 삭제보다 앞섭니다. Ctrl+Z는 내 편집만 되돌립니다.
  • 실시간 표시: 밖의 저장이 바로 보이고, 같은 문서를 보는 사람이 색 테두리와 이름표로 표시됩니다.
  • AI 처리 중: AI가 처리 중인 곳을 고치면 알림이 뜹니다. 잠그지는 않습니다.

AI 제안

큰 변경은 파일에 바로 쓰지 않고 제안으로 남길 수 있습니다(save_deck --propose). 요청 카드의 보기로 지금과 제안을 비교하고, 장·탭·요소·셀 단위로 받거나 버립니다.

작업 공간 정리

시작 페이지 최근 작업 카드의 🧹 정리는 산출물·고아 첨부·세션 로그·참조 없는 그림을 찾아 주고, 작업 공간을 압축 파일로 보관할 수 있습니다.

덱 JSON 구조 요약

원본은 두 가지입니다.

파일내용누가 고치나
content/<덱>.json내용 원본 — 슬라이드마다 레이아웃 이름 + 필드주로 AI(초안·대규모 수정)
decks/<덱>.json덱 — 내용 원본을 빌드해 요소 좌표까지 풀어 놓은 것편집기(직접 수정), AI(요청 처리)

내용 원본 예:

{
  "id": "intro", "title": "신제품 소개", "part": "day1", "version": "0.1",
  "slides": [
    {"layout": "cover", "title": "신제품 소개", "subtitle": "부제"},
    {"layout": "bullets", "title": "왜 바꾸나", "items": ["요점 1", {"text": "요점 2", "sub": ["보조"]}], "notes": "발표자 노트"},
    {"layout": "table", "title": "비교", "header": ["항목", "기존", "신규"], "rows": [["속도", "1x", "**3x**"]]},
    {"layout": "summary", "title": "정리", "items": ["기억할 것"]},
    {"layout": "end", "title": "End of Document", "sub": "신제품 소개"}
  ]
}
  • 슬라이드 크기는 1280×720 px 기준이며, PPTX로 바꿀 때 pt = px × 0.75로 환산합니다.
  • 덱의 요소 종류: 사각형·타원·알약(pill)·글상자·그림·선·화살표·곡선·표·글머리·코드·실행계획 등.
  • 인라인 강조: **굵게** · ==강조== · [[토큰|색 글자]] · {page}(쪽 번호).
  • 레이아웃은 표지·목차·장 표지·글머리·표·비교·흐름·카드·KPI·간트·로드맵·도넛·히트맵 등 57종이 있습니다. 목록과 필드 예시는 python3 <작업 공간>/nexa.py layout_samples로 봅니다.
  • 한국어 긴 문장은 \n으로 직접 끊는 것이 화면과 PPT를 맞추기에 가장 안전합니다.

내보내기와 공유

방법결과
편집기 내보내기 ▾ → PPTXout/<덱>.pptx, 덱 제목으로 받기
python3 <작업 공간>/nexa.py export_pptx <덱>같음
내보내기 메뉴 “PPTX — 글꼴 포함” 또는 nexa.py embed_fonts <덱>out/<덱>-fonts.pptx — 쓴 글자만 글꼴을 포함(Windows, PowerPoint 필요)
내보내기 메뉴 PDFPowerPoint가 있으면 PPTX → PDF, 없으면 Chrome/Edge 인쇄
내보내기 메뉴 유인물 PDF · 노트 페이지 PDF쪽당 3장 + 메모 줄 또는 쪽당 6장 · 노트 페이지
내보내기 메뉴 PowerPoint 렌더 미리보기PowerPoint로 실제 렌더한 그림을 편집기에서 확인(Windows, PowerPoint 필요)
시트 화면 내보내기.xlsx, 매크로가 있는 문서는 .xlsm
  • 내보낸 PPTX는 PowerPoint 기본 개체로 되어 있어 열어서 바로 고칠 수 있습니다. 발표자 노트도 PPTX 슬라이드 노트로 들어갑니다.
  • 내보낼 때마다 out/<덱>.fonts.json에 쓴 글꼴(무료/시스템/전용 구분)이 기록됩니다.

주의 PowerPoint에서 고친 내용은 덱 JSON으로 돌아오지 않습니다(한 방향). 계속 다듬을 내용은 편집기나 AI 요청으로 고친 뒤 다시 내보내세요.

내보내기 전에 아래 검사 탭이 ERROR 0인지 확인합니다. 검사는 저장할 때마다 자동으로 돌며, 글자 겹침·넘침·슬라이드 밖·최소 글자 크기·낮은 대비·고정폭 열 정렬을 알려 줍니다. 항목을 누르면 해당 요소로 이동합니다.

PowerPoint 파일 가져오기

새 슬라이드 양식의 “또는 PPT 파일로 시작” 이나 python3 <작업 공간>/nexa.py import_pptx <파일> --deck <새 덱>은 글·글머리·표·그림·차트·프리셋 도형을 원래 위치로 덱에 옮깁니다. 색과 글꼴은 템플릿 기본을 따릅니다.

보기 전용 공유 링크

허브 경유로 연 덱에서 내보내기 ▾ → 공유 링크(보기 전용) 를 고르면, 로그인 없이 그 덱 하나만 여는 주소(/s/<토큰>/)를 만듭니다.

  • 만료(1·7·30일 또는 직접 입력, 기본 7일, 최대 90일)와 4자 이상의 비밀번호(선택)를 정합니다. 토큰은 한 번만 보여 줍니다.
  • 발표자 노트와 숨김 슬라이드는 빠지고, 편집·요청·세션·내보내기는 막힙니다.
  • 같은 창이나 /account에서 회수합니다. 조회는 횟수로 세고 로그에 남습니다.

주의 비밀번호가 없으면 링크를 받은 사람은 누구나 열 수 있습니다. 운영자가 허브를 이 PC 밖으로 열어 두어야 다른 사람에게 닿습니다.

화면과 PPT 일치 검증

화면(브라우저)과 PPTX가 같은 모양이 되도록 두 렌더러가 같은 규칙을 쓰며, 그 결과를 수치로 확인할 수 있습니다. 일반 사용자는 PowerPoint 렌더 미리보기로 눈으로 확인하는 것으로 충분합니다.

  • python3 studio/compare.py -W <작업 공간> <덱>: 브라우저 화면과 PowerPoint 렌더를 픽셀 비교(Windows + PowerPoint + Chrome/Edge). 예제 덱 15장 기준 차이 0.3~2.7%(글자 가장자리 수준).
  • python3 studio/check_parity.py -W <작업 공간>: 화면용(JS)과 PPTX용(Python) 계산 결과가 같은지 확인(Node.js 필요).
  • 줄 배치 보정은 글꼴 파일의 메트릭으로 계산하므로 어느 글꼴 세트든 적용됩니다. 글꼴 파일을 찾지 못하면 평균값을 써서 2px 정도 어긋날 수 있으니, 작업 공간 fonts/에 넣어 주세요.

데이터와 개인정보

  • 작업 공간: 문서, 요청, 백업, 변경 원장, 첨부, 추출한 문서 내용, 내보낸 파일, 세션 턴 로그는 작업 공간 폴더에 있습니다.
  • 사용자 설정 폴더(작업 공간 밖): 설정, 최근 작업, 계정(users.json, 비밀번호는 scrypt로 저장), 로그인 세션, 공유 링크, 템플릿 통계, 접근 로그.
  • 접근 로그: 요청 결과·경로·사용자 아이디·IP 주소·브라우저 정보를 날짜별로 남기고 기본 30일 뒤 지웁니다(accessLogDays). 비밀번호·쿠키·토큰은 기록하지 않습니다.
  • 밖으로 나가는 것: Nexa Slide에는 텔레메트리와 업데이트 확인이 없습니다. 내용이 PC 밖으로 나가는 경우는 쓰는 AI 도구가 제공자에게 보낼 때, 허용한 세션이 웹을 검색하거나 git으로 push할 때, 터널을 쓸 때, 선택 도구가 내려받을 때(Mermaid의 npx 등)입니다.

개인정보처리방침과 약관도 함께 보세요.

문제 해결

증상확인·조치
python3을 찾을 수 없음(Windows)py -3 또는 python으로 바꿔 실행. AI에게도 “python3 대신 py -3을 써”라고 알려 줍니다
”포트를 쓸 수 없다”다른 작업 공간·프로그램이 그 포트를 사용 중 — nexa-slide.json의 port를 바꾸거나 --port auto
”이미 실행 중”그 작업 공간 서버가 이미 떠 있음 — nexa.py url로 주소 확인
편집기에 “덱 없음”decks/에 덱이 있는지 확인 — 없으면 nexa.py build_deck <덱>
칩이 계속 “세션 연결 없음”AI가 감시 명령을 실제로 실행했는지 확인. 다른 폴더에서 연 세션이면 작업 공간 경로를 넣어 요청
”연결됨”인데 요청이 안 감만료된 감시가 남았을 수 있음 — 같은 명령에 --takeover를 붙여 다시 겁니다
{"event":"refused"}다른 세션이 이 작업 공간을 감시 중 — 그 세션을 쓰거나 --takeover로 넘겨받기
요청이 “처리 중”에서 멈춤AI 세션이 처리 도중 끊김 — 요청 탭에서 “완료로 표시” → “다시 열기”로 대기로 돌린 뒤 다시 연결
build_deck이 멈춤편집기에서 직접 고친 슬라이드가 있음 — content에 옮긴 뒤 빌드(위 “대화창에서 바로 고치기” 참고)
로고가 안 보임 / 그림 404nexa-slide.json의 brand.logo, 덱의 그림 경로가 assetRoot 기준 상대 경로인지 확인
PPT 렌더 실패PowerPoint 설치·pwsh 경로 확인. 이전 렌더가 진행 중이면 잠시 뒤 다시
저장 충돌이 반복저장은 자동으로 병합되고, 같은 곳이 정말 충돌한 경우만 알립니다. 변경 탭에서 누구 값이 남았는지 확인합니다
시작 페이지가 설정이나 로그인을 요구함정상입니다. 허브는 로그인이 필요합니다. 처음에는 관리자를 만듭니다. 잠겼으면 15분 기다리거나 허브를 재시작하고, 비밀번호는 그 PC에서 python3 studio/auth.py reset-password <아이디>로 초기화합니다
웹 세션이 시작되지 않음서버를 실행하는 같은 사용자로 claude --version·claude auth status(또는 codex login status)를 확인한 뒤 service.py restart. 터미널 감시가 돌고 있거나 동시 세션 한도에 걸려도 거절됩니다
세션이 python3 nexa.py를 못 돌림(Windows, 종료 코드 49)PATH에서 스토어 대리 실행기가 실제 파이썬보다 앞에 있던 문제입니다. v0.25.19에서 고쳤으니 git pull로 엔진을 올리고 재시작합니다
Codex 세션이 명령을 실행하지 못함(Windows)Codex 데스크톱 앱을 설치합니다. npm·Chocolatey로 깐 codex.exe에는 보조 파일이 없습니다
예전 작업 공간에 새 기능이 없음python3 <작업 공간>/nexa.py update_launcher
Mermaid 다이어그램 실패Node.js가 필요하고, 처음에는 npx가 인터넷에 접속해야 합니다

포트를 쓰는 프로세스 찾기:

# Windows
Get-NetTCPConnection -LocalPort 5600 -State Listen | % { Get-CimInstance Win32_Process -Filter "ProcessId=$($_.OwningProcess)" } | select ProcessId, CommandLine
# macOS / Linux
lsof -iTCP:5600 -sTCP:LISTEN
pgrep -fl watch_requests

참고 Windows Git Bash의 kill은 래퍼만 끝내고 python이 남을 수 있습니다. Stop-Process -Id <PID> -Force 또는 taskkill /F를 씁니다.

버전 변경 이력

참고 Nexa Slide는 아직 git 태그나 GitHub 릴리스를 만들지 않았습니다. 아래 버전은 저장소 CHANGELOG.md에 적힌 엔진 버전이며, main 브랜치에 차례로 반영되었습니다.

버전 흐름 요약

버전날짜핵심
v0.25.0 ~ v0.25.192026-10-30시트 자동 필터, VBA 실행기와 코드 창, 엑셀 자주 쓰는 기능, 시트 패널 탭, PPT 파일로 시작, 템플릿 추천
v0.24.0 ~ v0.24.142026-10-29동적 배열, 엑셀 표, 이름 정의, LAMBDA, GROUPBY·PIVOTBY, 시트→슬라이드 연결, 실시간 편집, AI 제안
v0.23.02026-10-29시트 문서, 엑셀 가져오기·내보내기, 시트 테마, 병합 저장
v0.22.0 ~ v0.22.422026-10-15 ~ 10-28표 객체, 차트 보강, 찾기/바꾸기, 유인물, 공유 링크, 회사 템플릿 마법사, Codex 웹 세션, 작업 공간 정리
v0.21.0 ~ v0.21.422026-10-15차트, 도형, 아이콘, 묶음, 셀 병합, PDF, 발표자 보기, 삽입 패널, 문서 내용 추출
v0.19.0 ~ v0.20.32026-10-14 ~ 10-15표시 언어, 웹 세션 웹 검색·git 권한, 후속 요청, PPTX 내용 추출
v0.14.0 ~ v0.18.42026-10-14저장소형 작업 공간, PC별 설정, 변경 원장, 다중 선택, 코드 언어 35종
v0.13.42026-10-13Windows venv 콘솔 창 수정
v0.13.0 ~ v0.13.32026-10-02템플릿 부품·유형 바꾸기·덱/슬라이드별 글꼴·세션 활동 표시, 시작용 15종, 시각 템플릿 5종 추가
v0.11.0 ~ v0.12.02026-10-02슬라이드 유형 54개, 새 레이아웃 19종, 승인 템플릿 4종
v0.10.0 ~ v0.10.22026-10-02변경 기록 탭, 작업 공간 글꼴, 글꼴 포함 PPTX, 템플릿 검토
v0.7.0 ~ v0.9.02026-10-02시작 페이지·기본 메뉴, 목적별 시작용·디자인, 미리 보기·명령으로 만들기
v0.5.0 ~ v0.6.02026-10-01 ~ 10-02편집기 UI 개편(3모드·그 자리 메모), 새 작업 공간 도구, 강의 교안 시작용
v0.2.0 ~ v0.4.12026-10-01독립 저장소로 분리, 레이아웃 검사, 디자인 템플릿, 세션 연결 안정화

v0.25.19 이후 (버전 번호 없음)

CHANGELOG 항목은 v0.25.19에서 멈춥니다. 2026-11-03까지 main의 커밋은 버전 번호 없이 다음을 더합니다.

  • 개선 시트 변경 탭에서 셀이 많은 항목을 종류별 개수와 앞 6개로 접어 표시.
  • 수정 Windows에서 허브가 자동 시작될 때 콘솔 창이 뜨던 문제(pythonw로 등록).
  • 수정 임시 파일 누수 — 임시 폴더 도구(tmpfiles.py), 잔여물 쓸어내기, 정리 범주 추가.

v0.25.0 ~ v0.25.19 — 2026-10-30

  • 추가 문서에 저장되는 자동 필터(Ctrl+Shift+L) — 값 검색, 텍스트·숫자 조건, 상위 10, 색 기준 필터·정렬, 엑셀 가져오기·내보내기에서 유지.
  • 추가 브라우저 VBA 실행기와 { } VBA 코드 창 — 고친 모듈을 .xlsm에 다시 씀.
  • 추가 셀 서식 창, 표시 형식 단추, 서식 복사, 자동 맞춤, 메모, 중복 제거, 텍스트 나누기, 확대·축소, 그림 고르기·편집.
  • 추가 시트 패널 속성·요청·기록·변경 탭, 수식 편집 중 참조 색 표시와 F9, 글 넘침, 시트 글꼴 세트.
  • 추가 시트 테마 미리 보기와 screen-spec 테마.
  • 추가 새 슬라이드 PPT 파일로 시작(--pptx-import), 템플릿 추천 7개와 더 보기.
  • 개선 VBA 안전 — 실행 한도, Worker 실행, 위험 줄 알림, 내보낼 때 매크로 포함·제외 선택, 컴파일 코드를 버리는 소스 기준 내보내기.
  • 개선 시트와 엑셀 사이 복사 때 서식 유지, 통합 문서 표준 글꼴에 맞춘 열 너비·그림 크기.
  • 수정 Windows 웹 세션이 스토어 대리 실행기 때문에 python3 nexa.py를 못 돌리던 문제.
  • 수정 맑은 고딕 통합 문서의 그림이 엑셀에서 약 14% 커지던 문제, 변경 표시가 엉뚱한 칸에 보이던 문제.

v0.24.0 ~ v0.24.14 — 2026-10-29

  • 추가 넘침이 있는 동적 배열, LET·XMATCH·DATEDIF·NETWORKDAYS·WORKDAY, 엑셀 표와 구조적 참조, 이름 정의, LAMBDA 계열, GROUPBY·PIVOTBY, 배열 상수.
  • 추가 시트→슬라이드 연결, 엑셀 파일로 시작, HYPERLINK Ctrl+클릭, 오류 칸 설명, 요청 예시 칩.
  • 추가 실시간 연결(밖의 저장 즉시 반영, 함께 보는 사람 표시, AI 처리 중 알림), 요소·셀 단위 AI 제안과 미리 보기, AI가 바꾼 셀 강조와 되돌리기.
  • 추가 Windows 허브 자동 시작 service.py autostart.
  • 개선 300행 초과 시트 가상 스크롤, 행·열 삽입·삭제 병합.
  • 수정 창을 동시에 열면 연결이 거절되던 문제(대기열 128로 확대), 긴 글·틀 고정에서 선택 상자 어긋남, 같은 요소를 두 창에서 옮기면 저장이 실패하던 문제.

v0.23.0 — 2026-10-29

  • 추가 시트 문서와 화면, 결과가 같은 수식 계산기 두 곳(Python·브라우저), 매크로 통합 문서를 포함한 엑셀 가져오기·내보내기, 시트 테마.
  • 추가 요청 대상으로 셀 범위, 새 문서 참고 자료 첨부(materials/).
  • 추가 병합 저장 — 다른 곳을 고치면 둘 다 남고, 충돌하면 사람이 AI보다 앞섬.
  • 수정 AI 저장이 사람의 변경을 덮던 문제.

v0.22.0 ~ v0.22.42 — 2026-10-15 ~ 10-28

  • 추가 표 객체와 캔버스 셀 선택·편집, 행/열 띠, 셀 채움·테두리·줄무늬, 오른쪽 클릭 메뉴.
  • 추가 차트 누적 가로·100% 누적·보조 축 콤보·축 제목·숫자 형식, 표로 편집.
  • 추가 찾기/바꾸기, 서식 복사, 다른 덱에서 장 가져오기, 유인물·노트 페이지 PDF, 대체 텍스트·대비 검사, 발표 펜·레이저.
  • 추가 취소선·첨자, 숨김 슬라이드·섹션, 그림 프레임·톤 효과, 도형 광선·부드러운 가장자리, 선 투명도, 순서도 도형 4종, SVG 그림 PPTX.
  • 추가 보기 전용 공유 링크, 회사 템플릿 마법사, 시각 템플릿 casebook·electric, 작업 공간 정리·보관, 덱 복제·시작 덱·해시 id.
  • 개선 Codex 웹 세션과 스킬, 내용 유지 유형 전환, 입력 중 넘침 경고, ⚒ 자동 정리, 그림 지연 로딩, 내보내기 파일 이름 = 덱 제목, 글꼴 메트릭으로 계산하는 줄 배치 보정.

v0.21.0 ~ v0.21.42 — 2026-10-15

  • 추가 차트·도형·아이콘·다이어그램·Mermaid·묶음 요소, 끌어다 놓기·붙여넣기 그림 삽입, 표 셀 병합.
  • 추가 글머리 종류와 번호 자동 감지, 밑줄·기울임, 회전·뒤집기, 하이퍼링크, 그림자, 그림 자르기·투명도, 채우기 투명도·그라데이션.
  • 추가 PDF 내보내기, 발표자 보기, 삽입 패널, 명령 팔레트, 스마트 가이드, 속성 패널 재설계.
  • 추가 import_doc(Word·Excel·PDF 추출), import_pptx --deck, scale_fonts, 덱 관리, 세션 ID, 요청 기록 창.
  • 개선 영어 표시 보강과 언어 파일 분리.

v0.20.0 ~ v0.20.3 — 2026-10-14 ~ 10-15

  • 추가 웹 세션 git 기록·push·저장소 루트 권한(기본 끔, 강제 push 등은 계속 거절).
  • 추가 import_pptx 내용 추출, set_template, content의 place·extra, 글머리·행 균등 간격.

v0.19.0 ~ v0.19.1 — 2026-10-14

  • 추가 표시 언어(시스템·English·한국어), 웹 세션 웹 검색 권한(기본 끔), 첨부 미리보기, 후속 요청.
  • 수정 서버가 두 번 뜰 수 있던 경합.

v0.17.0 ~ v0.18.4 — 2026-10-14

  • 추가 코드 언어 35종 하이라이트, 줄 번호 전환, 복사, 언어 이름표.
  • 추가 다중 선택과 함께 이동·공통 속성·정렬과 분배, 패널 크기 조절, 최대화 배치.

v0.16.0 ~ v0.16.13 — 2026-10-14

  • 추가 변경 원장과 다시 쓴 변경 탭, AI 세션용 save_deck, 빈 슬라이드.

v0.14.0 ~ v0.15.3 — 2026-10-14

  • 변경 지정한 폴더는 저장소 루트가 되고 슬라이드는 그 아래 slides/에 둠(--slides-dir·--flat).
  • 추가 PC별 설정(nexa-slide.local.json·.env), update_launcher, 최근 작업 상태와 시작/중지, 루트 표식 .nexa-slide.json, 표 행별 높이.
  • 수정 macOS·Linux에서 재시작 직후 포트를 다시 열지 못하던 문제, 시작 페이지 열기·데모.

v0.13.4 — 2026-10-13

  • 수정 Windows venv에서 서비스를 시작하면 빈 콘솔 창이 뜨고 닫으면 서버가 끝나던 문제.

v0.13.3 — 2026-10-02

  • 추가 시각 템플릿 graphite — 흰 바탕·검정 글자, 강조색 없이 회색 단계와 굵기만, 모서리 없음, 쪽 번호만.

v0.13.2 — 2026-10-02

  • 추가 추천 시각 템플릿 4개 — editorial(미색·명조·진홍) · ledger(크림·남색·금색) · signal(노랑·검정·빨강) · forest(숲녹색·크림·테라코타).

v0.13.1 — 2026-10-02

  • 추가 템플릿 유형 15개 모두 시작용 내용으로 — 목적별로 슬라이드 유형 1114가지를 섞은 기본 구성(1117장). 새로 10개(research-report·investor-pitch·sales-proposal·case-story·marketing-campaign·consulting·training-course·classroom·public-policy·talk-story).
  • 개선 기존 5개 시작용도 같은 방식으로 늘림. 15개 모두 레이아웃 검사 ERROR 0.

v0.13.0 — 2026-10-02

  • 추가 템플릿 부품 — 같은 레이아웃에서 라벨·바닥 띠·큰 쪽 번호 같은 공통 부품 모양만 템플릿이 고름.
  • 추가 편집기 유형 바꾸기 — 제목·노트를 남기고 다른 슬라이드 유형으로 바꾸기.
  • 추가 덱·슬라이드별 글꼴 세트(슬라이드 > 덱 > 작업 공간 순서).
  • 추가 세션 활동 표시 — Claude Code 훅으로 “대화 작업 중 N분째 · 요청 n 대기” 등을 편집기 칩에 표시.
  • 추가 새 작업 공간에 AGENTS.md(Codex·Gemini CLI·Cursor용 안내).
  • 개선 시작 페이지가 경로에 &가 있으면 경고하고 실제 파이썬 경로로 명령 안내.

v0.12.0 — 2026-10-02

  • 추가 승인한 시각 템플릿 4개 — keynote · archive · blueprint · swiss.
  • 추가 승인한 템플릿 유형 5개를 시작용 내용으로(periodic-report·board-decision·ir-finance·strategy-plan·lecture-theory).
  • 추가 레이아웃 donut(PPTX에서 편집 가능한 원호) · heatmap.
  • 변경 겹치는 템플릿(story·report)과 시작용(weekly-report·monthly-report·decision-brief)을 목록에서 숨김 — 이미 쓰는 작업 공간과 --starter는 그대로 동작.
  • 개선 슬라이드 유형 54개에 “고를 신호”를 붙여, AI가 초안·요청 처리 때 내용 성격에 맞는 유형을 고르도록 함(nexa.py slide_types).

v0.11.0 — 2026-10-02

  • 추가 새 레이아웃 17종 — 결론 패널·선 그래프·범위 막대·깔때기·선택지 비교·사분면·트리·인물 카드·사진 도판·단계별 풀이·확인 문제·참고문헌·예상 질문 등.
  • 추가 슬라이드 유형 52개(목적·구성 기준 8묶음)와 편집기 슬라이드 추가 창(유형으로 / 레이아웃으로).
  • 추가 슬라이드 유형 검토 화면.

v0.10.2 — 2026-10-02

  • 변경 템플릿 검토를 시작 페이지의 탭(/review)으로 옮김.

v0.10.1 — 2026-10-02

  • 추가 템플릿·레이아웃 후보와 참고 자료를 등록·미리보기·검토·승인하는 검토 등록부.

v0.10.0 — 2026-10-02

  • 추가 편집기 변경 탭 — AI 등이 밖에서 바꾼 덱을 다시 불러올 때 장·요소별 전·후를 기록하고 표시.
  • 추가 작업 공간 글꼴(fonts/ + 전용 글꼴 세트), 편집기 글꼴 창, 쓴 글꼴 기록(out/<덱>.fonts.json).
  • 추가 글꼴 포함 PPTX(PPTX — 글꼴 포함, Windows PowerPoint 필요)와 무료 글꼴 안내 페이지.

v0.9.0 — 2026-10-02

  • 추가 시작 페이지 미리 보기 — 템플릿 × 시작용 내용으로 실제 빌드한 슬라이드를 창으로 확인.
  • 추가 명령으로 만들기 — 양식 값으로 채운 init_workspace.py·서버 시작 명령을 PowerShell·bash로 표시.
  • 추가 init_workspace.py 옵션 --port·--build·브리프(--purpose 등)·--ask-draft.
  • 개선 편집기가 새 덱·설정·엔진 변경을 감지해 덱 탭 갱신·“새 덱 — [열기]” 안내.
  • 추가 AI 연결 문서 — Claude Code와 그 밖의 AI 도구 연결 방법.
  • 수정 일부 레이아웃(column_chart·stack_bars)의 견본이 비어 빌드 오류가 나던 문제.

v0.8.0 — 2026-10-02

  • 추가 목적별 시작용 교안 8종(주간·월간 보고, 결정 요청, 일정, 회고, 공지·온보딩, RFP 발주·응답)과 디자인 템플릿 6종.
  • 추가 레이아웃 16종 — 상태 표·KPI 타일·간트·로드맵·주간 표·막대 차트 등.

v0.7.0 — 2026-10-02

  • 추가 시작 페이지(허브)와 왼쪽 위 기본 메뉴 — 새로 만들기·열기·최근 작업·튜토리얼·데모·템플릿·샘플.
  • 변경 엔진 폴더에 슬라이드 내용을 두지 않음 — 작업 공간 기본 위치는 문서 폴더/NexaSlide/<제목>.

v0.6.0 — 2026-10-02

  • 추가 강의 교안 시작용 lecture-course와 init_workspace.py --starter.
  • 수정 작업 공간이 엔진과 다른 드라이브(Windows)에 있으면 실행기 nexa.py가 문법 오류를 내던 문제.

v0.5.3 — 2026-10-02

  • 개선 요청 탭의 슬라이드 요청 칸에서 Enter = 메모 남기기, Shift+Enter = 줄바꿈.

v0.5.2 — 2026-10-02

  • 개선 바닥 각주를 가로로 이어 배치하고 번호를 잘 보이게 표시.
  • 개선 아직 남기지 않은 요청 입력을 브라우저에 보관(슬라이드 이동·새로 고침에도 유지).

v0.5.1 — 2026-10-01

  • 추가 새 작업 공간 만들기 init_workspace.py(빈 포트 자동 선택), 레이아웃 견본 layout_samples.py, 새 프로젝트 상세 설명서(macOS·Windows).

v0.5.0 — 2026-10-01

  • 변경 편집기 UI 개편 — 편집·선택·그리기 3모드, 그 자리 메모 팝오버, “요청 N개 보내기”, 붙박이 서식 줄, 위치 조정 메뉴.
  • 추가 확대 10~300%, 발표 모드(노트·경과 시간), 기록(자동 백업 되돌리기), ✨ 레이아웃 고치기 · ✨ 다듬기.
  • 개선 바뀐 것이 없으면 저장하지 않음. 슬라이드 디자인은 그대로.

v0.4.1 — 2026-10-01

  • 수정 요청 감시가 만료된 뒤에도 “연결됨”으로 보이지만 요청이 전달되지 않던 문제 — 감시가 일정 시간 뒤 스스로 끝나고(ttl), --takeover로 남은 감시를 넘겨받음.

v0.4.0 — 2026-10-01

  • 추가 디자인 템플릿 — 색·글꼴·글자 크기·검사 기준을 엔진 템플릿으로 묶고 작업 공간은 이름만 고름. lecture(기본) · lecture-large(글자 확대).

v0.3.0 — 2026-10-01

  • 추가 레이아웃 검사 — 글자 겹침·넘침·슬라이드 밖·최소 글자 크기·고정폭 정렬. 편집기 “검사” 탭(저장마다 자동, 항목 클릭 시 요소로 이동).

v0.2.0 — 2026-10-01

  • 추가 독립 저장소로 분리 — 엔진과 작업 공간 분리, 작업 공간별 포트로 여러 작업 공간 동시 운영, 백그라운드 서비스(start·stop·status).
  • 추가 Claude 세션 연결 — 요청 감시 스트림, 편집기 세션 칩, “지금 보내기”.
  • 추가 MIT 라이선스, 예제 작업 공간, 문서.

이전 버전(0.1, 2026-09)은 다른 저장소 안의 내부 도구(슬라이드 스튜디오 v0)로 개발되었습니다.

알려진 제한

  • 정식 릴리스 전: 태그·설치 파일이 없고 git clone으로 받아 씁니다. 개발이 빠르게 진행 중이라 화면·명령이 바뀔 수 있습니다.
  • AI 도구가 따로 필요: Nexa Slide는 LLM을 직접 호출하지 않습니다. 초안 작성·요청 처리는 claude·codex를 쓰는 웹 세션이나 사용자가 연 세션이 합니다. Gemini CLI·Cursor 같은 다른 도구는 수동 세션으로만, 1회 대기 반복이나 직접 지시로 연결하며 세션 활동 표시가 없습니다. 웹 세션 선택 권한(웹 검색·git·push·루트 접근)은 Claude만 해당합니다.
  • 한 방향 변환: PowerPoint에서 고친 내용은 덱 JSON으로 돌아오지 않습니다.
  • Windows 전용 기능: PowerPoint 렌더 미리보기, 글꼴 포함 PPTX, compare.py의 PowerPoint 비교, 허브 자동 시작 등록. 웹 세션과 Excel COM 기반 확인은 주로 Windows에서 검증되었다고 문서에 적혀 있습니다.
  • 편집기: 글자 자동 맞춤(넘치면 줄이기)은 지원하지 않고, 그라데이션은 요소 JSON으로만 정합니다. 표·차트는 묶을 수 없습니다.
  • 시트: 엑셀의 모든 기능을 지원하지는 않습니다. Microsoft 365 직접 연동은 없고, 색 기준 필터 조건은 파일에 쓰지 못하며, 못 쓰는 문법이나 시트 쓰기가 든 VBA 함수는 화면에서 계산하지 않습니다.
  • 표: 머리 행의 둥근 모서리는 PPT 표가 지원하지 않아 직각입니다. PPT 표는 글자가 칸보다 크면 행이 저절로 늘어납니다(화면에서는 넘쳐 보임).
  • 동시 편집: 저장은 자동으로 병합되지만, 같은 곳이 충돌하면 규칙에 따라 한 값만 남습니다(사람이 AI보다, 수정이 삭제보다 우선). AI 처리 중에도 편집을 잠그지 않습니다.
  • 기본은 로컬: 서버는 127.0.0.1에만 열립니다. 허브는 로그인이 필요하고, 바로 띄운 작업 공간 서버에는 로그인이 없습니다. 밖에서 접속하려면 운영자가 터널 같은 앞단을 구성하고 그 보안을 책임져야 합니다.
  • 화면·PPT 줄바꿈은 대체로 같지만, 숫자+단위나 괄호·가운뎃점 묶음 주변에서 가끔 한 줄 차이가 날 수 있습니다.

라이선스

Nexa Slide는 MIT 라이선스로 배포되며 상업적 사용을 포함해 무료로 쓸 수 있습니다. 제3자 구성요소 고지는 저장소의 THIRD_PARTY_NOTICES.md를 보세요.

  • 엔진 저장소에는 회사 로고 같은 상표 파일과 글꼴 파일을 넣지 않습니다. 예제의 로고는 자리 표시 이미지이며, 자기 로고는 작업 공간 assets/brand/에, 전용 글꼴은 작업 공간 fonts/에 둡니다.
  • 추천 글꼴(Pretendard · JetBrains Mono · D2Coding)은 SIL OFL 글꼴로, 각 공식 배포처에서 받습니다.

↑ 맨 위로