ShriD5/claude-mods/tree/main/ship-log
이 mod 소개
/ship은 이번 Claude Code 세션 시작 이후의 commit과 diffstat, Claude에게 요청한 작업 목록을 읽고 빠른 모델로 X 게시물을 작성합니다(모두 소문자, 1인칭, 구체적인 숫자 1개 포함, 280자 미만, hashtag와 em dash 없음). 초안은 명령 출력에 표시되고 클립보드에도 복사됩니다. /ship, /ship again, /ship linkedin의 3가지 모드를 지원합니다. /config에서 model, webhookUrl, webhookToken을 설정할 수 있으며 webhook을 설정하면 각 초안을 JSON POST로 보내 콘텐츠 일정 관리나 초안 큐에 연결할 수 있습니다.
설치
먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.
claude plugin marketplace add ShriD5/claude-mods claude plugin install ship-log
원문 / README
ship-log
/ship turns what you built in this Claude Code session into a build-in-public post.
It reads the commits and the diffstat since the session started, plus a short list of what you asked Claude for, and has a fast model write one X post: lowercase, first person, one concrete number, under 280 characters, no hashtags, no em dashes, none of the "officially / game-changer / excited to announce" voice. The draft shows up as the command's output and goes to your clipboard.
/ship an X post
/ship again another take, a different angle from the last one
/ship linkedin a longer LinkedIn version (sentence case, short paragraphs, up to 1,300 chars)
A draft that still breaks a rule (too long, a banned phrase, emoji spam) is sent back once with the problems named. If it is still too long after that, it gets cut at the last sentence that fits.
Install
claude --plugin-dir ./ship-log
or add this repo as a marketplace and install it with /plugin.
Options
Set them in /config (or pluginConfigs["ship-log"].options in settings):
| option | default | what it does |
| --- | --- | --- |
| model | haiku | The model that writes the post: an alias (haiku, sonnet) or a full model id. |
| webhookUrl | empty | If set, every draft is POSTed here as { "platform": "x" \| "linkedin", "text": "...", "source": "ship-log" }, so it can drop straight into a content calendar or a drafts queue. |
| webhookToken | empty | Sent as Authorization: Bearer <token> with that POST. Stored as a secret. |
How it works
It saves HEAD in $.state on session.start and keeps every prompt you type (prompt.submit). /ship runs git log <start>..HEAD and git diff --stat <start> through $.process.run, so uncommitted work counts too, then writes the post with $.model.complete and copies it with $.ui.copy.
