TomblooとかTombfixのようなクロスポストクライアントアプリ。
📝 Note: このアプリはservice.jsでプラグインとして拡張可能な設計になっており、各サービスのAPIキーやカスタムロジックの実装が必要なため、バイナリ配布は行っていません。
利用する場合は、手元でソースコードをクローンし、必要なサービスプラグインを実装してから実行してください。
- Twitter、はてなブックマークなどへのクロスポスト
- はてなブックマークを使ったタグ補完
- 独自に対応サービスを追加可能
- 入力欄はtextlintでのリアルタイムLint
- URLスキームを使ってブラウザから起動できる
- Claude Code連携によるAI説明文生成
アプリに必要な依存をnpmでインストールします。
npm install
アプリを起動する前に利用するサービスの設定をservice.jsで定義してください。
利用するサービスは後述するservice.jsに定義します。
postemリポジトリに実装があるビルトインサポートしているサービスは次の通りです。
クロスポストできるサービスの一覧をservice.jsで定義します。
- src/service.example.jsを
service.jsにリネームして設定
cp src/service.example.js src/service.jsデフォルトでは次のサービスが有効になっています。
- はてなブックマーク
- デバッグ(Development modeのみ有効)
また、src/servicesを参考にして独自のサービスを追加できます。
Development mode:
npm start
Production mode: dist/ディレクトリにバイナリが出力されます。
npm run dist
# dist/ にアプリができる
Browser mode: asocial-bookmark形式のリポジトリに対応しています。
https://postem.netlify.com/?title={TITLE}&url={URL}&github.owner={Owner名}&github.repo={リポジトリ名}&github.ref={refsheads%2Fブランチ名}&github.indexPropertyName={プロパティ名}&github.token={GitHub_Token}
- 投稿するサービスの選択(アイコンをクリック or ショートカット)
- タグや説明欄を入力
- "Submit"で送信(Cmd+Enter)
表示されているアイコンの左から順番にCmd+数字のショートカットが振られています。
- Cmd+1: Twitter
- Cmd+2: はてなブックマーク
最後のアイコンだけはCmd+0が振られています。
次の引数を付けて起動すると初期値が入った状態で起動できます。
--title: set default title--url: set default url
./bin/cmd.js --title "タイトル" --url "https://example.com"
URL schemeはproduction modeで作成したバイナリを一度起動しておく必要があります。 起動すると、次のURL schemeが自動的に登録されます。
postem://
今見ているサイトについて投稿する場合は、次のJavaScriptを実行するとアプリが起動できます。
location.href = `postem://?url=${encodeURIComponent(window.top.location.href)}&title=${encodeURIComponent(window.top.document.title)}`
Claude Codeを使ってURLから説明文を自動生成できます。
service.jsにclaudeCodeConfigをexportします。
export const claudeCodeConfig = {
enabled: true,
cliPath: process.env.CLAUDE_CODE_CLI_PATH || `${process.env.HOME}/.local/bin/claude`,
workDir: "/path/to/work/dir",
mcpConfig: {
mcpServers: {
// HTTP MCP Server
"example-http": {
url: "https://example.com/mcp",
type: "http"
},
// stdio MCP Server
"example-stdio": {
type: "stdio",
command: "npx",
args: ["some-mcp-server"],
cwd: "/path/to/cwd",
env: {}
}
}
},
// 文字列または関数
prompt: ({ url, title }) => `以下のURLの内容を要約してください\n\nURL: ${url}\nTitle: ${title}`
};| 項目 | 説明 |
|---|---|
enabled |
機能の有効/無効 |
cliPath |
Claude Code CLIのパス |
workDir |
作業ディレクトリ(MCPサーバーの実行に影響) |
mcpConfig |
MCPサーバー設定(オプション) |
prompt |
Claude Codeに渡すプロンプト(文字列または({ url, title }) => string形式の関数) |
- URLを入力すると自動でClaude Codeが実行されます(1秒のデバウンス付き)
- 結果はプレビューエリアに表示されます
- Cmd+Shift+Jまたはクリックで結果をコメント欄に挿入します
- Claude Code CLIが事前にインストール・認証されている必要があります
--dangerously-skip-permissionsフラグを使用するため、MCPツールは自動承認されます
- Fork it!
- Create your feature branch:
git checkout -b my-new-feature - Commit your changes:
git commit -am 'Add some feature' - Push to the branch:
git push origin my-new-feature - Submit a pull request :D
MIT