CLI

Command Line Interface

터미널에서 Markdown을 게시합니다. stdin 파이프, tmux 캡처, 문서 관리를 지원합니다.

설치

bash
npm install -g mdfy-cli

Node.js 18 이상이 필요합니다. 설치 후 mdfy 명령어를 사용할 수 있습니다.

명령어

mdfy publish <file>Markdown 파일 또는 stdin을 mdfy.cc에 게시합니다.
mdfy update <id> <file>기존 문서를 새 내용으로 업데이트합니다.
mdfy pull <id>문서의 Markdown 내용을 다운로드합니다.
mdfy delete <id>문서를 소프트 삭제합니다.
mdfy list내 모든 문서를 조회합니다.
mdfy open <id>브라우저에서 문서를 엽니다.
mdfy capture현재 tmux 패널을 캡처하여 게시합니다.
mdfy loginmdfy.cc에 인증합니다.
mdfy logout저장된 인증 정보를 삭제합니다.
mdfy whoami현재 인증된 사용자를 표시합니다.

publish

파일 또는 stdin을 게시합니다. 문서 URL을 반환합니다.

bash
# 파일 게시
mdfy publish README.md

# stdin에서 게시
echo "# Hello World" | mdfy publish

# 임시 저장으로 게시
mdfy publish README.md --draft

# 제목 지정
mdfy publish README.md --title "My Document"

# 비밀번호 설정
mdfy publish README.md --password "secret"

# 만료 시간 설정
mdfy publish README.md --expires 7d

옵션

--draft, -d임시 저장으로 게시합니다 (본인만 볼 수 있음).
--title, -t문서 제목을 설정합니다.
--password, -p문서를 비밀번호로 보호합니다.
--expires, -e만료 시간 설정: 1h, 1d, 7d, 30d.
--open, -o게시 후 브라우저에서 엽니다.

update

기존 문서를 업데이트합니다. edit token은 최초 게시 시 자동으로 저장됩니다.

bash
# 파일로 업데이트
mdfy update abc123 README.md

# stdin으로 업데이트
echo "# Updated" | mdfy update abc123

# 버전 노트와 함께 업데이트
mdfy update abc123 README.md --message "Fixed typos"

pull

문서의 Markdown 내용을 다운로드합니다.

bash
# stdout으로 출력
mdfy pull abc123

# 파일로 저장
mdfy pull abc123 -o output.md

# 비밀번호 보호 문서 다운로드
mdfy pull abc123 --password "secret"

delete

bash
mdfy delete abc123

# 확인 건너뛰기
mdfy delete abc123 --yes

list

bash
mdfy list

# Output:
#  ID       TITLE              UPDATED         STATUS
#  abc123   My Document        2 hours ago     published
#  def456   Draft Note         5 minutes ago   draft

open

bash
mdfy open abc123
# Opens https://mdfy.cc/d/abc123 in your default browser

capture

현재 tmux 패널의 출력을 캡처하여 코드 블록으로 게시합니다.

bash
# 현재 패널 캡처
mdfy capture

# 특정 패널 캡처
mdfy capture -t %3

# 마지막 N줄 캡처
mdfy capture --lines 50

인증

bash
# 인증 (브라우저에서 OAuth 진행)
mdfy login

# 저장된 인증 정보 삭제
mdfy logout

# 현재 사용자 확인
mdfy whoami
# user@example.com (authenticated via OAuth)

인증은 선택 사항입니다. 로그인 없이도 문서는 edit token 기반의 익명 문서로 생성됩니다. 로그인하면 mdfy list와 계정 기반 소유권을 사용할 수 있습니다.

파이프 예시

bash
# 클립보드를 mdfy로
pbpaste | mdfy publish

# 명령어 출력
ls -la | mdfy publish

# 파일 내용
cat report.md | mdfy publish

# AI로 생성 후 바로 게시
claude "Write a guide to Rust" | mdfy publish

# Git diff
git diff | mdfy publish --title "Changes"

# Docker 로그
docker logs my-app 2>&1 | mdfy publish

# 여러 명령어 파이프
curl -s https://api.example.com/data | jq . | mdfy publish

tmux 연동

bash
# 현재 패널 캡처
tmux capture-pane -p | mdfy publish

# 단축키로 캡처 및 공유
# ~/.tmux.conf에 추가:
bind-key M run-shell "tmux capture-pane -p | mdfy publish"

# 특정 패널 캡처
tmux capture-pane -t %3 -p | mdfy publish

# 전체 스크롤백 캡처
tmux capture-pane -p -S - | mdfy publish

Shell Aliases

bash
# ~/.zshrc 또는 ~/.bashrc에 추가

# 빠른 게시
alias mp="mdfy publish"

# 클립보드 게시
alias mpc="pbpaste | mdfy publish"

# 게시 후 브라우저 열기
alias mpo="mdfy publish --open"

# tmux 캡처
alias mtx="tmux capture-pane -p | mdfy publish"

설정

환경 변수

MDFY_URLAPI Base URL. 기본값: https://mdfy.cc

설정 파일

인증 정보는 mdfy login~/.mdfy/config.json에 저장됩니다. 게시된 문서의 edit token은 ~/.mdfy/tokens.json에 저장됩니다.

json
// ~/.mdfy/config.json
{
  "apiUrl": "https://mdfy.cc",
  "email": "user@example.com",
  "token": "..."
}