Damwha

CLI · MCP

터미널과 코딩 에이전트에서 담화 쓰기

damwha 명령과 stdio MCP 서버가 앱에 들어 있어요. 내 Mac에서 돌고 있는 담화 앱에 연결해서 Claude Code·Codex·셸에서 대화를 검색하고 전사를 읽고 할 일을 뽑아 볼 수 있어요.

담화 앱이 실행 중이어야 해요. 명령과 MCP 서버는 앱에서 데이터를 읽어요. 앱이 꺼져 있으면 종료 코드 2로 끝나고 앱을 실행하라고 알려 줘요.

설치

설정에서 설치

앱의 설정 › CLI · MCP에서 “명령 설치”를 누르면 ~/.local/bin/damwha가 앱을 가리키는 링크로 만들어지고 “연결”을 누르면 Claude Code나 Codex에 MCP 서버가 등록돼요. ~/.local/bin이 PATH에 없으면 더할 줄을 이 섹션이 알려 줘요.

이 섹션은 데스크톱 앱에만 있어요. Docker나 데모에는 없어요.

수동으로 설치

직접 실행하려면 아래 명령을 쓰세요. 설정 화면이 보여 주는 것과 같고, 설정 화면에는 내 실제 경로가 채워져 있어요.

damwha 명령 설치

mkdir -p ~/.local/bin && ln -s /Applications/Damwha.app/Contents/Resources/cli/damwha ~/.local/bin/damwha

Claude Code

claude mcp add --transport stdio --scope user damwha -- ~/.local/bin/damwha mcp

Codex

codex mcp add damwha -- ~/.local/bin/damwha mcp

그 밖의 MCP 클라이언트 (JSON)

{
  "mcpServers": {
    "damwha": {
      "command": "/Users/you/.local/bin/damwha",
      "args": ["mcp"]
    }
  }
}

JSON은 ~를 풀어 주지 않으니 링크의 전체 경로를 적으세요.

명령

어느 명령이든 --json을 붙이면 기계가 읽는 출력이 나와요. 안내 메시지는 앱의 표시 언어를 따라요.

명령하는 일
damwha status앱과의 연결을 확인하고 모델 준비 상태를 보여 줘요. 연결되면 0, 아니면 2로 끝나요.
damwha upload <file>오디오 파일을 새 회의로 올려요. 옵션: --title, --recorded-at, --folder, --preset, --whisper-model, --stt-device, --diarization-device, --language, --speakers, --min-speakers, --max-speakers, --no-summary, --no-lens. --wait는 처리가 끝날 때까지 기다려요.
damwha search <query>발화를 검색해요. 옵션: --limit, --from, --to, --meeting, --folder.
damwha meetings녹음 시각이 최근인 순으로 회의를 나열해요. --limit 기본값은 100이고 다음 페이지는 끝에 찍히는 --cursor 값으로 이어 봐요.
damwha meeting <id>회의 하나의 요약·태그·화자를 보여 줘요.
damwha transcript <id>회의 전사를 출력해요. --offset과 --limit으로 나눠 읽어요.
damwha lenses할 일·결정·약속을 나열해요. 옵션: --kind, --mine, --open, --done, --meeting, --due-from, --due-to, --limit. --mine은 “나”로 표시한 화자가 있어야 해요.
damwha mcpstdio MCP 서버를 실행해요. 에이전트가 띄우는 명령이라 직접 돌릴 일은 드물어요.

종료 코드

0
성공.
1
옵션이 틀렸거나 파일을 읽을 수 없거나 API 오류.
2
담화 앱이 실행 중이 아니거나 아직 준비 중.
3
upload --wait가 끝났지만 처리 단계 하나가 실패.

MCP 도구

damwha라는 서버 하나로 등록돼요. 데이터를 읽기만 하는 도구에는 읽기 전용 표시가 붙어 있어요.

도구하는 일
list_lenses뽑아낸 렌즈(할 일·결정·약속)를 최근순으로 나열해요. 종류·회의·폴더·기한·완료 여부·내 것만으로 거를 수 있어요.
get_lens렌즈 하나와 회의 제목, 근거가 된 발화를 보여 줘요.
list_meetings회의의 id·녹음 시각·상태·폴더·제목을 나열해요.
get_meeting회의의 요약·태그·화자를 전사 없이 보여 줘요.
get_transcript회의 전사를 한 페이지씩 읽어요. next_offset으로 이어 가요.
search발화를 검색해 회의 id·발화 id·시각이 붙은 발췌를 돌려줘요.
get_meeting_status회의의 처리 진행 상황을 보여 줘요. 업로드 뒤 확인할 때 써요.
upload_audio내 컴퓨터의 오디오 파일을 새 회의로 올리고 기다리지 않고 id를 돌려줘요.
complete_lens열린 렌즈를 사용자가 확인한 뒤 완료로 표시해요. 아래를 보세요.

항목 완료는 먼저 물어봐요

complete_lens는 내 데이터를 바꾸는 도구라서 에이전트 말만으로는 실행되지 않아요. 담화가 클라이언트에 확인 창을 띄우고, 항목·회의·담당·기한을 앱에서 다시 읽어 보여 줘요. 수락해야만 바뀌고 거절하거나 창을 닫으면 항목은 열린 채로 남아요. 이 도구는 MCP elicitation을 지원하는 클라이언트에서만 보이고 지원하지 않는 클라이언트에서는 숨겨져요.

내 데이터와 연결한 서비스

MCP로 가져간 데이터는 연결한 LLM 서비스의 정책을 따라요.

대화에서 나온 글은 신뢰할 수 없는 내용이라고 표시해 에이전트에 넘겨요. 누가 말한 문장이 지시로 받아들여질 가능성을 줄이는 장치이지, 완전히 막지는 못해요.