Discourse OpenAPI 기반 범용 CLI다.
- OpenAPI 동기화 및 캐시
- API operation 목록 조회
operationId기반 실행- raw API 호출
- 마크다운 파일 기반 포스트 생성 및 수정
- 인증된 첨부 다운로드
- Node.js 25+
- npm
git clone https://github.com/zarathucorp/discourse-cli.git
cd discourse-cli
npm install
npm run build
npm link
discourse-cli --help기본 사용 방식은 글로벌 CLI로 discourse-cli를 실행하는 것이다.
고정된 글로벌 설치가 더 맞는 환경이면 아래처럼 설치할 수 있다.
npm install -g /absolute/path/to/discourse-cli
discourse-cli --help글로벌 명령을 만들 수 없는 환경이면 저장소 안에서 직접 실행한다.
node dist/cli.js --help인증은 환경변수로 주는 방식을 권장한다.
export DISCOURSE_BASE_URL=https://community.dev.zarathu.com
export DISCOURSE_API_KEY=your_api_key
export DISCOURSE_API_USERNAME=your_api_username첫 점검은 읽기 전용 호출부터 시작하는 편이 안전하다.
discourse-cli spec sync
discourse-cli api run getUser --path username=jwheo긴 글은 먼저 로컬 마크다운 파일로 작성한 뒤 올리는 편이 안전하다.
예시 post.md:
# 긴 글 테스트
본문입니다.

[report](./files/report.xlsx)새 토픽 생성:
discourse-cli posts create \
--title '긴 글 테스트' \
--category 4 \
--raw-file ./post.md기존 포스트 수정:
discourse-cli posts update \
--post-id 395 \
--raw-file ./post.md \
--edit-reason 'revise markdown draft'--raw-file를 쓰면 로컬 이미지와 첨부 링크를 먼저 업로드한 뒤, Discourse 웹 Composer와 같은 upload://... syntax로 치환해서 전송한다.
- 현재는 사람이 읽기 쉬운 전용 명령보다 범용 API 실행에 초점이 있다.
- 일부 첨부파일은 포스트가 보여도 인증 없이는 다운로드되지 않을 수 있다.
posts create --raw-file는 마크다운 안의 로컬 파일 링크를 업로드하고 웹 Composer와 같은upload://...syntax로 치환한다.posts update --post-id --raw-file는 기존 포스트 수정에도 같은 치환 규칙을 적용한다.