{"_id":"@abeedoo/ghost-cli","_rev":"2-07812eb19546cef81f871f825fe576c0","name":"@abeedoo/ghost-cli","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@abeedoo/ghost-cli","version":"1.0.0","keywords":["ghost","cms","cli","blog","publishing"],"author":{"name":"Clifford Meece","email":"clifford.meece@me.com"},"license":"MIT","_id":"@abeedoo/ghost-cli@1.0.0","maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"homepage":"https://github.com/abeedoolabs/ghost-cli#readme","bugs":{"url":"https://github.com/abeedoolabs/ghost-cli/issues"},"bin":{"ghost-cli":"bin/ghost-cli.mjs"},"dist":{"shasum":"73b8f127e2385750bb401a5d12d93b67e2f6ab6a","tarball":"https://registry.npmjs.org/@abeedoo/ghost-cli/-/ghost-cli-1.0.0.tgz","fileCount":3,"integrity":"sha512-DIOkWzMc7EAgVJ3dxIFNiloBcc9A2yuljkhjERmw4kAtcsbM6RP0mFJ6iet4WgXad0Np9bb/oAGFCBkjmYkHmg==","signatures":[{"sig":"MEUCIQDjixBsiMMkdQJU+cwFZgDGY6FyWowGVhcveVGSwVQUQAIgPah4sZIhxtXboCOFzQkKonw6SPL7esUxKz7Zbhnua/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15602},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"91e4082e80b48ee964429fb3d8b7bdc577200635","_npmUser":{"name":"meecect","email":"clifford.meece@me.com"},"repository":{"url":"git+https://github.com/abeedoolabs/ghost-cli.git","type":"git"},"_npmVersion":"11.14.1","description":"Minimal CLI for managing Ghost CMS posts, pages, and tags","directories":{},"_nodeVersion":"22.18.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/ghost-cli_1.0.0_1779122026564_0.8725025185524036","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@abeedoo/ghost-cli","version":"1.0.1","description":"Minimal CLI for managing Ghost CMS posts, pages, and tags","type":"module","bin":{"ghost-cli":"bin/ghost-cli.mjs"},"keywords":["ghost","cms","cli","blog","publishing"],"author":{"name":"Clifford Meece","email":"clifford.meece@me.com"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/abeedoolabs/ghost-cli.git"},"engines":{"node":">=18.0.0"},"gitHead":"91e4082e80b48ee964429fb3d8b7bdc577200635","_id":"@abeedoo/ghost-cli@1.0.1","bugs":{"url":"https://github.com/abeedoolabs/ghost-cli/issues"},"homepage":"https://github.com/abeedoolabs/ghost-cli#readme","_nodeVersion":"22.18.0","_npmVersion":"11.14.1","dist":{"integrity":"sha512-eTZKFdoNelkpRKB4yGS3DleLjcAaaAiDMz/cbkrNgj2qag12fZ+QTEZXyk0g3Oi0LV5etqgQzSZ93C8sJurBAA==","shasum":"1d59a5930779759652013655de68db14e6c7db10","tarball":"https://registry.npmjs.org/@abeedoo/ghost-cli/-/ghost-cli-1.0.1.tgz","fileCount":3,"unpackedSize":15632,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD0EegVXDzlEmtNzgVqpzo+V7jvKpe2syrIJ+eH0wbcNgIhAOyv3IC77aQPUeU2wtDyz8x2lYvIf8QaRwFYlrINoBQM"}]},"_npmUser":{"name":"meecect","email":"clifford.meece@me.com"},"directories":{},"maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ghost-cli_1.0.1_1779122049573_0.8288012417339896"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-18T16:33:46.398Z","modified":"2026-05-18T16:34:10.004Z","1.0.0":"2026-05-18T16:33:46.687Z","1.0.1":"2026-05-18T16:34:09.862Z"},"bugs":{"url":"https://github.com/abeedoolabs/ghost-cli/issues"},"author":{"name":"Clifford Meece","email":"clifford.meece@me.com"},"license":"MIT","homepage":"https://github.com/abeedoolabs/ghost-cli#readme","keywords":["ghost","cms","cli","blog","publishing"],"repository":{"type":"git","url":"git+https://github.com/abeedoolabs/ghost-cli.git"},"description":"Minimal CLI for managing Ghost CMS posts, pages, and tags","maintainers":[{"name":"meecect","email":"clifford.meece@me.com"}],"readme":"# @abeedoo/ghost-cli\n\nMinimal CLI for managing Ghost CMS posts, pages, and tags. Zero dependencies.\n\n**[npm](https://www.npmjs.com/package/@abeedoo/ghost-cli)** · **[GitHub](https://github.com/abeedoolabs/ghost-cli)**\n\n## Install\n\n```bash\nnpm install -g @abeedoo/ghost-cli\n```\n\nOr use with npx:\n\n```bash\nnpx @abeedoo/ghost-cli list posts\n```\n\n## Setup\n\nGet your Admin API key from Ghost Admin → Settings → Integrations → Add custom integration.\n\nConfigure credentials using any of these methods (checked in priority order):\n\n### 1. Environment variables\n\n```bash\nexport GHOST_URL=https://your-ghost-site.com\nexport GHOST_ADMIN_API_KEY=your-id:your-secret\n```\n\n### 2. --env flag\n\n```bash\nghost-cli --env /path/to/config list posts\n```\n\n### 3. `.ghost-cli` file (recommended)\n\nCreate a `.ghost-cli` file in your project root:\n\n```\nGHOST_URL=https://your-ghost-site.com\nGHOST_ADMIN_API_KEY=your-id:your-secret\n```\n\nAdd `.ghost-cli` to your `.gitignore` — it contains secrets.\n\n### 4. `.env` file\n\nFalls back to `.env` if no `.ghost-cli` file is found:\n\n```env\nGHOST_URL=https://your-ghost-site.com\nGHOST_ADMIN_API_KEY=your-id:your-secret\n```\n\n### Multi-site config\n\nYour `.ghost-cli` file can contain multiple sites using `[section]` headers:\n\n```\n# Default site (used when no --site flag)\nGHOST_URL=https://myblog.com\nGHOST_ADMIN_API_KEY=id:secret\n\n[staging]\nGHOST_URL=https://staging.myblog.com\nGHOST_ADMIN_API_KEY=id:secret\n\n[client-blog]\nGHOST_URL=https://client.example.com\nGHOST_ADMIN_API_KEY=id:secret\n```\n\nUse with the `--site` flag:\n\n```bash\nghost-cli --site staging list posts\nghost-cli --site client-blog publish my-post\nghost-cli list posts                          # uses default\n```\n\n## Commands\n\n### List content\n\n```bash\nghost-cli list posts                    # all posts\nghost-cli list posts --status draft     # drafts only\nghost-cli list posts --status published # published only\nghost-cli list pages                    # all pages\n```\n\n### Create a draft\n\n```bash\nghost-cli draft my-post-slug \"My Post Title\" content.md\n```\n\nCreates a draft post from a markdown file. If the file starts with `# Title`, the first line is stripped (the title comes from the argument). If a post with that slug already exists, it's replaced.\n\n### Publish / Unpublish\n\n```bash\nghost-cli publish my-post-slug\nghost-cli unpublish my-post-slug\n```\n\n### Get post details\n\n```bash\nghost-cli get my-post-slug\n```\n\nShows title, status, URL, preview link, tags, and excerpt.\n\n### Update content\n\n```bash\nghost-cli update my-post-slug updated-content.md\n```\n\nReplaces the post content from a markdown file. Preserves title, tags, and status.\n\n### Delete\n\n```bash\nghost-cli delete my-post-slug\n```\n\n### List tags\n\n```bash\nghost-cli tags\n```\n\nShows all tags with post counts, sorted by usage.\n\n## How It Works\n\nUses Ghost's Admin API with JWT authentication. The CLI constructs JWTs from your Admin API key using Node's built-in `crypto` module — no external dependencies.\n\nPosts are created using Ghost's mobiledoc format with a markdown card, which means your markdown is rendered by Ghost's markdown engine (including code blocks, links, images, etc.).\n\n## License\n\nMIT — [Clifford Meece](https://cliffordmeece.com)\n","readmeFilename":"README.md"}