Textus
You hold the pen. AI keeps your ink flowing. Textus is a free, open-source, next-generation Markdown editor for macOS, Windows and Linux, with a writing assistant built in.
회의 녹음을 텍스트로 변환하고 AI가 요약과 기획서를 자동 생성합니다.
Translation pending
ProductivityTypeScript · JavaScriptGitHub @lobokingOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
회의 녹음 → 텍스트 변환 → AI 요약 → PRD 자동 생성 플랫폼 MeetingAutoDocs는 회의 녹음을 자동으로 텍스트로 변환하고, AI가 요약과 기획서(PRD)를 생성해주는 웹 애플리케이션입니다. • 🎙️ 브라우저 녹음: 마이크로 실시간 회의 녹음 • 🔄 STT 변환: OpenAI Whisper API를 사용한 음성-텍스트 변환 • ✨ AI 요약: Claude API를 활용한 회의 내용 요약 • 📄 PRD 생성: 회의 내용을 바탕으로 자동 기획서 작성 • 💾 저장소: 로컬 스토리지를 통한 회의 기록 영구 저장 .env.local 파일을 프로젝트 루트에 생성하고 다음 내용을 추가하세요. (아래 예시 전체는 .env.example 파일에 들어있습니다 — cp .env.example .env.local 후 키만 채우면 됩니다.)Read the full README ↗
회의 녹음 → 텍스트 변환 → AI 요약 → PRD 자동 생성 플랫폼
🌐 데모: https://loboking.github.io/AutoMeetingWriteDocument/
MeetingAutoDocs는 회의 녹음을 자동으로 텍스트로 변환하고, AI가 요약과 기획서(PRD)를 생성해주는 웹 애플리케이션입니다.
git clone <repository-url>
cd meeting-auto-docs
npm install
# 또는
yarn install
# 또는
pnpm install
.env.local 파일을 프로젝트 루트에 생성하고 다음 내용을 추가하세요.
(아래 예시 전체는 .env.example 파일에 들어있습니다 — cp .env.example .env.local 후 키만 채우면 됩니다.)
# .env.local
# ⚠️ 필수: LLM 문서생성은 ZAI(GLM)로 강제.
# GEMINI_API_KEY(STT/화자용)를 깔면 LLM이 Gemini로 빼앗겨 PRD 섹션이 8192로 잘리는
# 치명적 품질 사고가 납니다. 반드시 한 줄 명시.
LLM_PROVIDER=ZAI
# Z.ai 코딩 플랜 (Coding Plan) API — LLM 문서생성(GLM)
ZAI_API_KEY=your-zai-api-key-here
ZAI_BASE_URL=https://open.bigmodel.cn/api/coding/paas/v4
# OpenAI API — Whisper STT(음성→텍스트) fallback
OPENAI_API_KEY=sk-your-openai-api-key-here
# STT/화자분리용 Gemini 오디오 (활성화됨 — 도이 작업 머짍 완료).
# 이 키를 쓰더라도 LLM_PROVIDER=ZAI 가 LLM을 고정하므로 PRD 절단 사고 방지됨.
GEMINI_API_KEY=your-gemini-api-key-here
# STT용 모델(기본 gemini-2.5-flash). LLM용 GEMINI_MODEL과 분리.
# GEMINI_STT_MODEL=gemini-2.5-flash
STT_PROVIDER=whisper # whisper | gemini-audio (기본 whisper, gemini-audio 시 STT+화자분리 동시)
API 키 가져오기:
💡 참고: 코딩 플랜 구독 시 잔액 기반이 아닌 구독 기반으로 GLM 모델을 무제한 사용할 수 있습니다. 지원 모델: glm-5, glm-5.1, glm-5-turbo, glm-4.7 (현재 glm-5 사용)
⚠️ 치명적 함정 —
LLM_PROVIDER=ZAI생략 금지:GEMINI_API_KEY는 STT/화자분리용이지만, 같은 키가 LLM provider 후보에도 Gemini로 추가됩니다. 기본 우선순위가ANTHROPIC > GEMINI > OPENAI > ZAI라LLM_PROVIDER를 안 정하면 LLM이 Gemini로 잡힙니다. 그러면 PRD 섹션 생성 토큰이 16384가 아닌 8192로 절반 잘려서 품질 사고가 납니다. STT용으로 Gemini 키를 쓰더라도 반드시LLM_PROVIDER=ZAI한 줄을 넣어 LLM을 고정하세요.
npm run dev
브라우저에서 http://localhost:3000을 열어 확인합니다.
새 회의 시작
녹음
텍스트 변환
AI 요약
기획 문서 생성
ℹ️ 전체 생성 동작 안내: 문서 생성은 페이지를 떠나거나 새로고침해도 다시 방문하면 남은 문서부터 이어서 진행됩니다. 진행 중에는 우측 하단 진행바에서 상태 확인 및 "종료"가 가능합니다. 단, 브라우저의 모든 탭을 닫으면 생성이 멈추며, 다른 기기/브라우저에서는 이어지지 않습니다. (브라우저 로컬에 진행 상황을 저장하는 방식)
데이터가 생성되면 바로 해당 탭으로 이동할 수 있습니다:
| 문서 | 설명 | 의존성 |
|---|---|---|
| PRD | 제품 요구사항 문서 | - |
| 시나리오 정의서 | 사용자 시나리오 정의 | - |
| 기능목록 | 기능 목록 정의서 | - |
| 화면목록 | 화면 목록 정의서 | 기능목록 |
| IA | 정보구조도 | 화면목록 |
| 플로우차트 | 사용자 플로우 및 프로세스 | 시나리오, 화면목록 |
| 스토리보드 | 사용자 시나리오 흐름 | 시나리오, 플로우차트 |
| 와이어프레임 | 화면 설계 및 플로우 | IA, 화면목록 |
| API명세 | API 인터페이스 설계 | 기능목록 |
| 테스트계획 | 테스트 시나리오 및 계획 | 기능목록, API명세 |
| 테스트케이스 | 상세 테스트 케이스 목록 | 기능목록, API명세, 테스트계획 |
| DB설계 | 데이터베이스 스키마 및 ERD | 기능목록, API명세 |
| WBS | 작업 분류 구조 | 기능목록, API명세, 와이어프레임 |
| 배포가이드 | 릴리스 및 배포 절차 | PRD, 기능목록, API명세 |
기획 문서를 기반으로 개발 명령어를 바로 실행할 수 있습니다:
터미널 모드 전환
원문 → 미리보기 → 시각화 → 터미널명령어 패널 사용
터미널 사용
자동 생성 명령어 예시
# 프로젝트 초기화
npx create-next-app@latest 프로젝트명 --typescript --tailwind --app
# 컴포넌트 생성
mkdir -p src/components/new-feature
# API 라우트 생성
mkdir -p src/app/api/v1/resource
# DB 마이그레이션
npx prisma migrate dev --name init_schema
# 테스트 실행
npm test -- --coverage
| 키보드 | 기능 |
|---|---|
Ctrl + ` | 터미널 토글 (예정) |
meeting-auto-docs/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── api/ # API Routes
│ │ │ ├── transcribe/ # Whisper STT
│ │ │ ├── summarize/ # Claude 요약
│ │ │ └── generate-prd/ # Claude PRD 생성
│ │ ├── layout.tsx
│ │ └── page.tsx # 메인 페이지
│ ├── components/ # React 컴포넌트
│ │ ├── ui/ # shadcn/ui 컴포넌트
│ │ ├── MeetingRecorder.tsx
│ │ ├── TranscriptViewer.tsx
│ │ ├── SummaryViewer.tsx
│ │ └── PrdViewer.tsx
│ ├── hooks/ # React Hooks
│ │ └── useRecorder.ts # 녹음 로직
│ ├── store/ # Zustand 상태 관리
│ │ └── meetingStore.ts
│ └── types/ # TypeScript 타입 정의
│ └── index.ts
├── public/ # 정적 리소스
├── .env.example # 환경 변수 예시 (cp .env.example .env.local)
└── package.json
녹음된 오디오를 텍스트로 변환합니다.
Request:
audioFile: File (audio/webm)language: string (기본값: 'ko')Response:
{
"text": "변환된 텍스트",
"duration": 120.5
}
텍스트를 요약합니다.
Request:
{
"text": "회의 텍스트",
"context": "회의 제목"
}
Response:
{
"summary": {
"overview": "회의 개요",
"keyPoints": ["핵심 사항 1", "핵심 사항 2"],
"decisions": ["의사결정 1"],
"actionItems": [
{
"task": "작업 내용",
"assignee": "담당자",
"priority": "high",
"deadline": "기한"
}
]
}
}
요약을 바탕으로 PRD를 생성합니다.
Request:
{
"summary": { ... },
"meetingInfo": {
"title": "회의 제목",
"date": "2024-01-01",
"attendees": ["참여자1", "참여자2"]
}
}
Response:
{
"prd": "# PRD: 회의 제목\n\n..."
}
npm run build
npm start
npm run lint
| 변수 | 설명 | 필수 |
|---|---|---|
LLM_PROVIDER | LLM provider 강제 지정. ZAI 권장/사실상 필수 — GEMINI_API_KEY 깔면 LLM이 Gemini로 빼앗겨 PRD 섹션이 8192로 잘림 | 필수 ⚠️ |
ZAI_API_KEY | Z.ai 코딩 플랜 API 키 (LLM 문서생성 GLM) | 선택* |
ZAI_BASE_URL | 코딩 플랜 API 베이스 URL (/api/coding/paas/v4) | 선택 |
OPENAI_API_KEY | OpenAI API 키 (Whisper STT fallback) | 선택* |
GEMINI_API_KEY | Google AI 키 (STT/화자분리용 Gemini 오디오, 옵션). 같은 키가 LLM 후보에도 추가되므로 LLM_PROVIDER=ZAI 필수 | 선택 |
STT_PROVIDER | STT provider 노브 (whisper | gemini-audio, 기본 whisper) | 선택 |
선택사항이지만, 실제 AI 기능을 사용하려면 필요합니다. 없으면 모의 응답이 반환됩니다. 코딩 플랜 구독을 추천합니다.
⚠️
LLM_PROVIDER=ZAI를 반드시 넣으세요. STT용GEMINI_API_KEY만 깔고 이 줄을 빼면, LLM이 Gemini로 잡혀 PRD 섹션이 8192 토큰으로 잘리는 품질 사고가 납니다. 자세한 이유는 위 '환경 변수 설정' 섹션의 치명적 함정 박스를 보세요.
기여를 환영합니다! 이슈를 열거나 PR을 제출해주세요.
MIT License
A: API 키 없이도 앱을 실행하고 UI를 테스트할 수 있습니다. 다만 실제 AI 기능 대신 모의 응답이 반환됩니다.
A: 브라우저가 마이크 접근 권한을 요청할 때 "허용"을 선택해주세요. HTTPS 환경이 필요할 수 있습니다.
A: Z.ai 코딩 플랜 구독을 추천합니다. 구독 기반으로 GLM 모델(glm-5.1, glm-4.7 등)을 무제한 사용할 수 있어 가성비가 우수합니다.
A: Chrome, Firefox, Safari, Edge의 최신 버전을 지원합니다. MediaRecorder API를 지원하는 브라우저라면 작동합니다.
A: 녹음 파일은 서버에 전송되어 텍스트로 변환된 후 즉시 삭제됩니다. 회의 데이터는 브라우저의 로컬 스토리지에만 저장됩니다.
문제가 있거나 도움이 필요하시면 이슈를 등록해주세요.
Made with ❤️ using Next.js and AI