PageSourceSearch

https://postiz.com/_next/static/chunks/pages/claude-code/hashnode-f5ae97917fe5116a.js

js postiz.com collected 2026-09-24 18:30:59 UTC 39,651 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[0],{44825:function(e,t,s){(window.__NEXT_P=window.__NEXT_P||[]).push(["/claude-code/hashnode",function(){return s(39508)}])},39508:function(e,t,s){"use strict";s.r(t),s.d(t,{__N_SSG:function(){return P}});var a=s(85893),o=s(67294),i=s(9008),n=s.n(i),l=s(25675),d=s.n(l),r=s(41664),c=s.n(r),p=s(65154),x=s(86245),h=s(57465);let m=[{field:"__type",type:"string",required:!0,description:'Must be "hashnode"'},{field:"title",type:"string",required:!0,description:"Article title (min 6 characters)"},{field:"subtitle",type:"string",required:!1,description:"Article subtitle (min 2 characters)"},{field:"main_image",type:"object",required:!1,description:"Cover image: {id: string, path: string}"},{field:"canonical",type:"string",required:!1,description:"Original URL for SEO canonical link"},{field:"publication",type:"string",required:!0,description:"Publication ID (required)"},{field:"tags",type:"array",required:!0,description:"At least 1 tag: [{value: string (tag ID), label: string}]"}],u="claude mcp add --transport http postiz ".concat("https://mcp.postiz.com/mcp-oauth-dynamic"),g="https://postiz.com/claude-code/hashnode",f=[{question:"How do I publish to Hashnode from Claude Code?",answer:"Add the Postiz MCP server to Claude Code, sign in to Postiz with OAuth, and connect your Hashnode account in Postiz. Then point Claude Code at a markdown file and name a tag. It resolves your publication and tag IDs, uploads the cover image, asks for permission, and publishes or schedules the post."},{question:"Why does Hashnode need a publication and a tag?",answer:"Hashnode organizes posts under publications and requires at least one tag from its tag list, so Postiz marks publication and tags as required. Claude Code handles this by listing your publications and matching your tag names to Hashnode tag IDs, so you only need to describe the topic in plain language."},{question:"Can Claude Code add a cover image and canonical URL to a Hashnode post?",answer:"Yes. Reference an image file and Claude Code uploads it through Postiz as main_image. Mention the original URL and it sets canonical so Hashnode credits your blog. Both are optional, but together they make a cross-posted article look and rank like a native one."},{question:"Can Claude Code publish Hashnode posts automatically on release?",answer:"Yes. Use headless mode, claude -p, in your release workflow with a prompt that asks for a post about the latest tag. Claude Code reads the git history, drafts the article with a title over six characters, sets the publication and a tag, and publishes through Postiz before exiting."}],b=[{title:"Find your publication and tags",prompt:"> Which Hashnode publication and tags do I\n  have? Publish ./posts/edge-caching.md there\n  with the closest matching tags",reply:"Claude Code: Publication: myblog.hashnode.dev.\n  Tags matched: Caching, Web Performance.\n  Ready to publish?"},{title:"Syndicate with canonical",prompt:'> Publish ./posts/edge-caching.md to Hashnode\n  with canonical https://example.com/blog/\n  edge-caching and subtitle "A practical guide"',reply:"Claude Code: canonical and subtitle set.\n  Scheduled on Hashnode."},{title:"Publish on release, headless",prompt:"$ claude -p \"Write a Hashnode post about the\n  changes in the latest git tag and publish it\n  via Postiz with the tag 'Release Notes'.\"",reply:"# Add to your release workflow"}],j=["publication is required. Claude Code can look up your publication ID from Postiz.","At least one tag is required, and tags are passed as tag ID and label pairs from Hashnode's tag list.","title must be at least 6 characters; subtitle is optional with a 2 character minimum.","main_image is the cover image, uploaded through Postiz and passed with id and path.","canonical points Hashnode at the original article when you syndicate from your own blog."],w=[{slug:"devto",name:"Dev.to"},{slug:"medium",name:"Medium"},{slug:"wordpress",name:"WordPress"},{slug:"reddit",name:"Reddit"},{slug:"linkedin",name:"LinkedIn"}],y={"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":g,url:g,name:"Publish to Hashnode from Claude Code | Postiz MCP Guide",description:"Publish Hashnode blog posts from Claude Code with Postiz. Set the publication, required tags, subtitle, cover image, and canonical URL from your terminal.",dateModified:"2026-09-23",isPartOf:{"@type":"WebSite",name:"Postiz",url:"https://postiz.com"},about:{"@type":"SoftwareApplication",name:"Postiz",applicationCategory:"BusinessApplication",operatingSystem:"Web",url:"https://postiz.com"}},{"@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://postiz.com"},{"@type":"ListItem",position:2,name:"Claude Code",item:"https://postiz.com/claude-code"},{"@type":"ListItem",position:3,name:"Hashnode",item:g}]},{"@type":"HowTo",name:"How to post to Hashnode from Claude Code with Postiz",totalTime:"PT2M",step:[{"@type":"HowToStep",position:1,name:"Add the Postiz MCP server to Claude Code",text:"Run ".concat(u," in your terminal. Claude Code opens a browser tab so you can sign in to Postiz with OAuth. No API key is needed. Alternatively run ").concat("npx skills add gitroomhq/postiz-agent"," and set POSTIZ_API_KEY.")},{"@type":"HowToStep",position:2,name:"Connect your Hashnode account in Postiz",text:"In the Postiz dashboard, add Hashnode as a channel and authorize it. Claude Code can then see the channel and its Hashnode-specific settings."},{"@type":"HowToStep",position:3,name:"Ask Claude Code to post to Hashnode",text:"Describe the post in plain language, including the time and any Hashnode settings. Claude Code calls Postiz, asks for permission, and schedules or publishes the post."}]},{"@type":"FAQPage",mainEntity:f.map(e=>
1({"@type":"Question",name:e.question,acceptedAnswer:{"@type":"Answer",text:e.answer}}))}]},C=e=>{let{children:t,title:s}=e;return(0,a.jsxs)("div",{className:"rounded-[16px] overflow-hidden border border-white border-opacity-10",children:[s&&(0,a.jsx)("div",{className:"bg-[#1A1919] px-5 py-3 border-b border-white border-opacity-10",children:(0,a.jsx)("p",{className:"text-[14px] text-[#d1d1d1] font-mono",children:s})}),(0,a.jsx)("pre",{className:"bg-[#0e0e0e] p-5 overflow-x-auto",children:(0,a.jsx)("code",{className:"text-[14px] leading-[22px] text-[#d1d1d1] font-mono whitespace-pre",children:t})})]})},N=e=>{let{number:t,title:s,description:o,code:i,codeTitle:n}=e;return(0,a.jsxs)("div",{className:"flex flex-col lg:flex-row gap-6 lg:gap-10 items-start",children:[(0,a.jsxs)("div",{className:"flex-1 space-y-3",children:[(0,a.jsxs)("div",{className:"flex items-center gap-3",children:[(0,a.jsx)("div",{className:"w-10 h-10 flex items-center justify-center bg-gradient-to-br from-[#682EE1] to-[#2A0772] rounded-full shrink-0",children:(0,a.jsx)("span",{className:"text-[16px] font-jakarta font-bold",children:t})}),(0,a.jsx)("h4",{className:"text-[20px] leading-[22px] sm:text-[24px] sm:leading-[26.4px] font-jakarta font-semibold",children:s})]}),(0,a.jsx)("p",{className:"text-[16px] leading-[24px] sm:text-[18px] sm:leading-[27px] text-[#d1d1d1] pl-[52px]",children:o})]}),(0,a.jsx)("div",{className:"flex-1 w-full",children:(0,a.jsx)(C,{title:n,children:i})})]})},v=e=>{let{icon:t,title:s,description:o}=e;return(0,a.jsxs)("div",{className:"flex flex-col gap-4 p-6 sm:p-8 bg-[#1A1919] rounded-[16px] sm:rounded-[20px] border border-white border-opacity-10",children:[(0,a.jsx)("div",{className:"w-12 h-12 sm:w-14 sm:h-14 flex items-center justify-center bg-gradient-to-br from-[#682EE1] to-[#2A0772] rounded-xl",children:(0,a.jsx)("span",{className:"text-2xl sm:text-3xl",children:t})}),(0,a.jsx)("h4",{className:"text-[20px] leading-[22px] sm:text-[24px] sm:leading-[26.4px] font-jakarta font-semibold",children:s}),(0,a.jsx)("p",{className:"text-[16px] leading-[20.83px] sm:text-[18px] sm:leading-[23.44px] text-[#d1d1d1]",children:o})]})};var P=!0;t.default=(0,p.C)(()=>{let[e,t]=(0,o.useState)(!1),s=(0,o.useCallback)(()=>{navigator.clipboard.writeText(u),t(!0),setTimeout(()=>t(!1),2e3)},[]);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(n(),{children:[(0,a.jsx)("title",{children:"Publish to Hashnode from Claude Code | Postiz MCP Guide"}),(0,a.jsx)("meta",{name:"description",content:"Publish Hashnode blog posts from Claude Code with Postiz. Set the publication, required tags, subtitle, cover image, and canonical URL from your terminal."}),(0,a.jsx)("link",{rel:"canonical",href:"https://postiz.com/claude-code/hashnode"}),(0,a.jsx)("meta",{property:"og:type",content:"website"}),(0,a.jsx)("meta",{property:"og:url",content:"https://postiz.com/claude-code/hashnode"}),(0,a.jsx)("meta",{property:"og:title",content:"Publish to Hashnode from Claude Code | Postiz MCP Guide"}),(0,a.jsx)("meta",{property:"og:description",content:"Publish Hashnode blog posts from Claude Code with Postiz. Set the publication, required tags, subtitle, cover image, and canonical URL from your terminal."}),(0,a.jsx)("meta",{property:"og:image",content:"https://cms.postiz.com/wp-content/uploads/2024/06/OG-1-1024x538.png"}),(0,a.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,a.jsx)("meta",{name:"twitter:title",content:"Publish to Hashnode from Claude Code | Postiz MCP Guide"}),(0,a.jsx)("meta",{name:"twitter:description",content:"Publish Hashnode blog posts from Claude Code with Postiz. Set the publication, required tags, subtitle, cover image, and canonical URL from your terminal."}),(0,a.jsx)("meta",{name:"twitter:image",content:"https://cms.postiz.com/wp-content/uploads/2024/06/OG-1-1024x538.png"}),(0,a.jsx)("script",{type:"application/ld+json",dangerouslySetInnerHTML:{__html:JSON.stringify(y)}})]}),(0,a.jsxs)("div",{className:"flex flex-col items-center max-w-[1440px] mx-auto overflow-hidden",children:[(0,a.jsxs)("section",{className:"!mt-[73px] sm:!mt-[120px] !pt-0 !pb-0 space-y-[30px] px-5",children:[(0,a.jsxs)("div",{className:"flex justify-center",children:[(0,a.jsx)(d(),{src:h.WW,alt:"Decorative doodle",className:"hidden lg:block"}),(0,a.jsx)(d(),{src:h.Of,alt:"Decorative doodle",className:"block lg:hidden"})]}),(0,a.jsxs)("div",{className:"flex flex-col items-center",children:[(0,a.jsx)("div",{className:"min-h-[12px] sm:min-h-[10px]"}),(0,a.jsx)("nav",{"aria-label":"Breadcrumb",className:"mb-4",children:(0,a.jsxs)("ol",{className:"flex flex-wrap items-center justify-center gap-2 text-[14px] leading-[18px] text-[#d1d1d1]",children:[(0,a.jsx)("li",{children:(0,a.jsx)(c(),{href:"/",className:"hover:text-white transition-colors",children:"Home"})}),(0,a.jsx)("li",{"aria-hidden":"true",children:"/"}),(0,a.jsx)("li",{children:(0,a.jsx)(c(),{href:"/claude-code",className:"hover:text-white transition-colors",children:"Claude Code"})}),(0,a.jsx)("li",{"aria-hidden":"true",children:"/"}),(0,a.jsx)("li",{"aria-current":"page",className:"text-white",children:"Hashnode"})]})}),(0,a.jsxs)("div",{className:"max-w-[900px] relative",children:[(0,a.jsx)("h1",{className:"text-center",children:"Publish to Hashnode from Claude Code"}),(0,a.jsx)(d(),{src:h.ai,alt:"Decorative underline",className:"absolute left-[50%] -translate-x-[50%] hidden lg:block"})]}),(0,a.jsx)("div",{className:"min-h-[24px] sm:min-h-[32px]"}),(0,a.jsx)("p",{className:"max-w-[700px] text-[18px] leading-[23.44px] sm:text-[22px] sm:leading-[28.64px] font-[400] text-[#d1d1d1] text-center",children:"Claude Code can publish and schedule Hashnode blog posts through Postiz. Add the Postiz MCP server with one command, sign in with OAuth, and ask Claude Code to publish a markdown file to your Hashnode publication with a title, subtitle, cover image, at least one tag, and a canonical URL, straight from the terminal."}),(0,a.jsx)("div",{className:"min-h-[32px] sm:min-h-[40px]"}),(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row gap-4 w-full sm:w-auto",children:[(0,a.jsx)(x.zx,{variant:"primary",size:"lg",className:"!w-full sm:!w-fit",asLink:"https://docs.postiz.com/providers/hashnode",alt:"View Hashnode setup guide",children:"Setup Guide"}),(0,a.jsx)(x.zx,{variant:"secondary",size:"lg",className:"!w-full sm:!w-fit",asLink:"https://github.com/anthropics/claude-code",alt:"View on GitHub",children:"GitHub"}),(0,a.jsx)(x.zx,{variant:"secondary",size:"lg",className:"!w-full sm:!w-fit",alt:"Copy the Claude Code MCP command",onClick:s,children:e?"Copied!":"Copy MCP command"})]}),(0,a.jsx)("div",{className:"min-h-[16px] sm:min-h-[24px]"}),(0,a.jsx)("p",{className:"text-[14px] leading-[18.23px] text-[#d1d1d1] text-center",children:"Please make sure there is always a human in the loop."}),(0,a.jsxs)("p",{className:"mt-2 text-[14px] leading-[18.23px] text-[#d1d1d1] text-center",children:["Last updated: ","September 2026"]})]}),(0,a.jsx)(d(),{src:h.eP,alt:"Decorative doodle",className:"hidden lg:block absolute top-[320px] left-0"}),(0,a.jsx)(d(),{src:h.IB,alt:"Decorative doodle",className:"block sm:hidden absolute bottom-[73px] left-0"}),(0,a.jsx)(d(),{src:h.cW,alt:"Decorative doodle",className:"hidden lg:block absolute top-[120px] right-0"}),(0,a.jsx)(d(),{src:h.lh,alt:"Decorative doodle",className:"block sm:hidden absolute bottom-[233px] right-0"})]}),(0,a.jsx)("section",{className:"py-[40px] sm:py-[60px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[900px] mx-auto 
1space-y-6",children:[(0,a.jsx)("h2",{className:"text-center",children:"How to post to Hashnode from Claude Code"}),(0,a.jsx)("p",{className:"max-w-[700px] mx-auto text-center text-[18px] leading-[23.44px] sm:text-[20px] sm:leading-[28.64px] text-[#d1d1d1]",children:"Add the Postiz MCP server to Claude Code once, sign in with OAuth, connect Hashnode in Postiz, and then describe the post in plain language. Setup takes about a minute."}),(0,a.jsx)("div",{className:"min-h-[10px] sm:min-h-[20px]"}),(0,a.jsx)(C,{title:"Setup once, then just ask",children:'# One-time setup: add the Postiz MCP server (OAuth, no API key)\nclaude mcp add --transport http postiz https://mcp.postiz.com/mcp-oauth-dynamic\n\n# Or install the Postiz skill instead\nnpx skills add gitroomhq/postiz-agent\nexport POSTIZ_API_KEY=your_api_key\n\n# Then ask Claude Code:\n> Publish docs/blog/monorepo-migration.md to my\n  Hashnode publication with the tag\n  "TypeScript" and ./assets/cover.png\n\nClaude Code: Done! Hashnode post scheduled\n  with publication, tag and cover image.'})]})}),(0,a.jsxs)("section",{className:"space-y-[40px] sm:space-y-[60px] py-[50px] sm:py-[90px] px-5 w-full",children:[(0,a.jsx)("h2",{className:"text-center",children:"What can Claude Code do on Hashnode?"}),(0,a.jsx)("p",{className:"max-w-[700px] mx-auto text-center text-[18px] leading-[23.44px] sm:text-[20px] sm:leading-[28.64px] text-[#d1d1d1]",children:"On Hashnode, Claude Code can publish to a chosen publication with a title, subtitle, cover image, canonical URL, and one or more tags."}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 max-w-[1200px] mx-auto",children:[(0,a.jsx)(v,{icon:"\uD83D\uDCD6",title:"Blog Publishing",description:"Publish long-form blog posts with full Markdown support. Code blocks, embeds, and rich formatting work out of the box."}),(0,a.jsx)(v,{icon:"\uD83D\uDCDA",title:"Publication Support",description:"Publish posts under your Hashnode publication. Every post requires a publication ID to target the right blog."}),(0,a.jsx)(v,{icon:"\uD83D\uDDBC",title:"Cover Images",description:"Upload and attach cover images to make your posts stand out. Eye-catching visuals drive more clicks from the Hashnode feed."}),(0,a.jsx)(v,{icon:"\uD83D\uDD17",title:"Canonical URLs",description:"Set canonical URLs for SEO when cross-posting from your original blog. Avoid duplicate content penalties across platforms."}),(0,a.jsx)(v,{icon:"\uD83C\uDFF7",title:"Required Tagging",description:"Hashnode requires at least one tag per post. Tags use tag IDs for precise categorization and improved discoverability."}),(0,a.jsx)(v,{icon:"\uD83D\uDCC5",title:"Scheduled Publishing",description:"Schedule blog posts for future publication with precise timestamps. Build a consistent publishing cadence effortlessly."})]})]}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[1200px] mx-auto space-y-[40px] sm:space-y-[60px]",children:[(0,a.jsx)("h2",{className:"text-center",children:"How does Claude Code post to Hashnode through Postiz?"}),(0,a.jsx)("p",{className:"max-w-[700px] mx-auto text-center text-[18px] leading-[23.44px] sm:text-[20px] sm:leading-[28.64px] text-[#d1d1d1]",children:"You describe what you want in plain language and Claude Code handles the Postiz calls for you. Here is how a typical conversation goes."}),(0,a.jsxs)("div",{className:"space-y-10 sm:space-y-16",children:[(0,a.jsx)(N,{number:1,title:"Find Your Hashnode Integration",description:"Ask Claude Code whether your Hashnode account is connected. It also checks which options the platform supports.",code:"> Is my Hashnode account connected to Postiz?\n\nClaude Code: Yes — your Hashnode account is connected\n  and ready. Want me to post something?",codeTitle:"Example conversation"}),(0,a.jsx)(N,{number:2,title:"Prepare Your Content",description:"Write your blog post in Markdown. Hashnode supports rich formatting including headers, code blocks with syntax highlighting, images, and embedded content. Optionally upload a cover image.",code:'> Draft a Hashnode post about our new\n  feature launch\n\nClaude Code: Here\'s a draft for Hashnode:\n  "We just shipped something big..."\n  Want me to add media and schedule it?',codeTitle:"Example conversation"}),(0,a.jsx)(N,{number:3,title:"Publish Your Post",description:"Create a post with your content, title, publication, tags, and optional cover image and canonical URL. Remember: publication and at least one tag are required.",code:"> Yes — add screenshot.png and schedule\n  it for tomorrow at 9am\n\nClaude Code: Done! Scheduled on Hashnode for\n  tomorrow at 9:00 AM.",codeTitle:"Example conversation"})]})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[1200px] mx-auto 
1space-y-[40px]",children:[(0,a.jsx)("h2",{className:"text-center",children:"Hashnode Settings Reference"}),(0,a.jsx)("p",{className:"max-w-[600px] mx-auto text-center text-[18px] leading-[23.44px] sm:text-[20px] sm:leading-[28.64px] text-[#d1d1d1]",children:"Mention any of these in plain language and Claude Code sets them for you. These are the Hashnode options it can apply to any post."}),(0,a.jsx)("div",{className:"overflow-x-auto",children:(0,a.jsxs)("table",{className:"w-full border-collapse",children:[(0,a.jsx)("thead",{children:(0,a.jsxs)("tr",{children:[(0,a.jsx)("th",{className:"text-left p-4 border-b border-white border-opacity-10 text-[16px] font-jakarta font-semibold",children:"Field"}),(0,a.jsx)("th",{className:"text-left p-4 border-b border-white border-opacity-10 text-[16px] font-jakarta font-semibold",children:"Type"}),(0,a.jsx)("th",{className:"text-left p-4 border-b border-white border-opacity-10 text-[16px] font-jakarta font-semibold hidden sm:table-cell",children:"Required"}),(0,a.jsx)("th",{className:"text-left p-4 border-b border-white border-opacity-10 text-[16px] font-jakarta font-semibold",children:"Description"})]})}),(0,a.jsx)("tbody",{children:m.map((e,t)=>{let{field:s,type:o,required:i,description:n}=e;return(0,a.jsxs)("tr",{children:[(0,a.jsx)("td",{className:"p-4 border-b border-white border-opacity-5",children:(0,a.jsx)("code",{className:"text-[14px] font-mono text-white bg-white bg-opacity-5 px-2 py-1 rounded",children:s})}),(0,a.jsx)("td",{className:"p-4 border-b border-white border-opacity-5 text-[#d1d1d1] text-[14px] font-mono",children:o}),(0,a.jsx)("td",{className:"p-4 border-b border-white border-opacity-5 text-[#d1d1d1] text-[14px] hidden sm:table-cell",children:i?"Yes":"No"}),(0,a.jsx)("td",{className:"p-4 border-b border-white border-opacity-5 text-[#d1d1d1] text-[16px]",children:n})]},t)})})]})})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[900px] mx-auto space-y-[40px]",children:[(0,a.jsx)("h2",{className:"text-center",children:"Common Configurations"}),(0,a.jsx)("p",{className:"max-w-[600px] mx-auto text-center text-[18px] leading-[23.44px] sm:text-[20px] sm:leading-[28.64px] text-[#d1d1d1]",children:"Ask Claude Code for any of these common Hashnode publishing scenarios and it applies the matching settings."}),(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-[18px] sm:text-[20px] font-jakarta font-semibold mb-3",children:"Basic Blog Post"}),(0,a.jsx)(C,{title:"Just ask",children:"> Post it with: Basic Blog Post\n\nClaude Code: Got it. Applying:\n  title: Understanding React Server Components\n  publication: my-publication-id\n  tags: React, Next.js"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-[18px] sm:text-[20px] font-jakarta font-semibold mb-3",children:"Full-Featured Post with Cover Image"}),(0,a.jsx)(C,{title:"Just ask",children:"> Post it with: Full-Featured Post with Cover Image\n\nClaude Code: Got it. Applying:\n  title: Complete Guide to Node.js Streams\n  subtitle: Master streams for high-performance I/O\n  main_image: id=img-abc123, path=https://uploads.postiz.com/streams-cover.png\n  publication: my-publication-id\n  tags: Node.js, Backend, Tutorial"})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-[18px] sm:text-[20px] font-jakarta font-semibold mb-3",children:"Cross-Posted Article with Canonical URL"}),(0,a.jsx)(C,{title:"Just ask",children:"> Post it with: Cross-Posted Article with Canonical URL\n\nClaude Code: Got it. Applying:\n  title: Why We Migrated to Bun\n  subtitle: Our experience switching JavaScript runtimes\n  canonical: https://engineering.mycompany.com/migrating-to-bun\n  publication: company-blog-id\n  tags: Bun, JavaScript, DevOps"})]})]})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[1200px] mx-auto space-y-[40px]",children:[(0,a.jsx)("h2",{className:"text-center",children:"Example prompts for Hashnode in Claude Code"}),(0,a.jsx)("p",{className:"max-w-[700px] mx-auto text-center text-[18px] leading-[23.44px] sm:text-[20px] sm:leading-[28.64px] text-[#d1d1d1]",children:"These are prompts you can type into a Claude Code session, or pass to claude -p in a script. Claude Code reads your repo, calls Postiz, and confirms before publishing."}),(0,a.jsx)("div",{className:"grid grid-cols-1 lg:grid-cols-3 gap-6",children:b.map((e,t)=>{let{title:s,prompt:o,reply:i}=e;return(0,a.jsxs)("div",{className:"flex flex-col gap-4 p-6 bg-[#1A1919] rounded-[20px] border border-white border-opacity-10",children:[(0,a.jsx)("h3",{className:"text-[18px] leading-[24px] sm:text-[20px] sm:leading-[26px] font-jakarta font-semibold",children:s}),(0,a.jsx)(C,{title:"Claude Code",children:"".concat(o,"\n\n").concat(i)})]},t)})})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[900px] mx-auto 
1space-y-6",children:[(0,a.jsx)("h2",{className:"text-center",children:"Hashnode limits and gotchas to know"}),(0,a.jsx)("p",{className:"max-w-[700px] mx-auto text-center text-[18px] leading-[23.44px] sm:text-[20px] sm:leading-[28.64px] text-[#d1d1d1]",children:"Hashnode has more required fields than most blogging platforms, and Claude Code fills them in for you."}),(0,a.jsx)("ul",{className:"space-y-3 p-6 sm:p-8 bg-[#1A1919] rounded-[20px] border border-white border-opacity-10",children:j.map((e,t)=>(0,a.jsxs)("li",{className:"flex items-start gap-3 text-[16px] leading-[24px] text-[#d1d1d1]",children:[(0,a.jsx)("span",{className:"text-[#682EE1] mt-1 shrink-0",children:"✓"}),e]},t))})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[1200px] mx-auto space-y-[40px] sm:space-y-[60px]",children:[(0,a.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[(0,a.jsx)("h2",{className:"text-center",children:"What is Claude Code?"}),(0,a.jsx)("p",{className:"max-w-[700px] text-center text-[18px] leading-[23.44px] sm:text-[22px] sm:leading-[28.64px] text-[#d1d1d1]",children:"Claude Code is Anthropic's agentic coding tool that lives in your terminal. It handles software engineering tasks — writing features, fixing bugs, and answering questions about your codebase — and it can run shell commands and MCP tools like Postiz."}),(0,a.jsxs)("p",{className:"max-w-[700px] text-center text-[16px] leading-[24px] text-[#d1d1d1]",children:["Not the same as"," ",(0,a.jsx)(c(),{href:"/claude-cowork",className:"text-[#a87fef] hover:text-white transition-colors",children:"Claude Cowork"})," ","(Anthropic's desktop agent for knowledge workers) or the"," ",(0,a.jsx)(c(),{href:"/claude",className:"text-[#a87fef] hover:text-white transition-colors",children:"Postiz connector for Claude.ai"})," ","(chat in the browser or desktop app). Claude Code runs in your terminal and IDE and can read your repository while it writes Hashnode posts."]})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:[(0,a.jsx)(v,{icon:"\uD83D\uDCBB",title:"Terminal & IDE Native",description:"Claude Code runs in your terminal, with extensions for VS Code and JetBrains. You type what you want in plain English and it handles Postiz for you."}),(0,a.jsx)(v,{icon:"\uD83D\uDD27",title:"Agentic Execution",description:"Claude Code plans and works through multi-step tasks on its own — discovering channels, uploading media, and scheduling posts — and asks for permission before it acts."}),(0,a.jsx)(v,{icon:"⚡",title:"Parallel Tasks",description:"Run several Claude Code sessions side by side, or spawn subagents in one. Schedule posts to different platforms while it handles other coding work."})]}),(0,a.jsx)("div",{className:"bg-[#0e0e0e] rounded-[20px] p-6 sm:p-10 border border-white border-opacity-10",children:(0,a.jsxs)("div",{className:"flex flex-col md:flex-row gap-8",children:[(0,a.jsxs)("div",{className:"flex-1 space-y-4",children:[(0,a.jsx)("h4",{className:"text-[20px] leading-[22px] sm:text-[24px] sm:leading-[26.4px] font-jakarta font-semibold",children:"How Postiz Works with Claude Code"}),(0,a.jsx)("p",{className:"text-[16px] leading-[24px] text-[#d1d1d1]",children:"Claude Code discovers Postiz through the Postiz skill or the Postiz MCP server. It reads the SKILL.md (or the MCP tool list) to learn what it can do, then chains calls together for social media workflows."}),(0,a.jsx)("ul",{className:"space-y-3",children:["Install the Postiz skill, or add the Postiz MCP server with claude mcp add","Claude Code discovers the Postiz tools over MCP, or reads SKILL.md when you use the skill","MCP route: sign in with OAuth, no API key. Skill route: set POSTIZ_API_KEY","Claude Code asks for permission before running commands","Works alongside your coding tasks in parallel"].map((e,t)=>(0,a.jsxs)("li",{className:"flex items-start gap-3 text-[16px] leading-[24px] text-[#d1d1d1]",children:[(0,a.jsx)("span",{className:"text-[#682EE1] mt-1 shrink-0",children:"✓"}),e]},t))})]}),(0,a.jsx)("div",{className:"flex-1",children:(0,a.jsx)(C,{title:"Install Postiz",children:'# Option A: add the Postiz MCP server\nclaude mcp add --trans
1port http postiz https://mcp.postiz.com/mcp-oauth-dynamic\n\n# Option B: install the Postiz skill\nnpx skills add gitroomhq/postiz-agent\nexport POSTIZ_API_KEY=your_api_key\n\n# Then just ask\nclaude "list my social media integrations"'})})]})})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[1200px] mx-auto space-y-[40px] sm:space-y-[60px]",children:[(0,a.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[(0,a.jsx)("h2",{className:"text-center",children:"Hashnode Publishing with Claude Code"}),(0,a.jsx)("p",{className:"max-w-[700px] text-center text-[18px] leading-[23.44px] sm:text-[22px] sm:leading-[28.64px] text-[#d1d1d1]",children:"Tell Claude Code what to post from your terminal or IDE — it discovers your integrations via Postiz and handles the entire publishing workflow."})]}),(0,a.jsxs)("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6",children:[(0,a.jsxs)("div",{className:"flex flex-col gap-6 p-6 sm:p-8 bg-[#1A1919] rounded-[20px] border border-white border-opacity-10",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)("div",{className:"w-12 h-12 sm:w-14 sm:h-14 flex items-center justify-center bg-[#D97757] rounded-xl",children:(0,a.jsx)("span",{className:"text-2xl sm:text-3xl",children:"\uD83D\uDCBB"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-[20px] leading-[22px] sm:text-[24px] sm:leading-[26.4px] font-jakarta font-semibold",children:"Just Ask Claude Code"}),(0,a.jsx)("p",{className:"text-[14px] text-[#d1d1d1]",children:"Terminal and IDE integration"})]})]}),(0,a.jsx)("p",{className:"text-[16px] leading-[24px] sm:text-[18px] sm:leading-[27px] text-[#d1d1d1]",children:"Tell Claude Code what to post from your terminal or IDE — it discovers your integrations via Postiz and handles the entire publishing workflow."}),(0,a.jsx)(C,{title:"Claude Code CLI",children:'$ claude "Post to Hashnode about our\n  new feature launch, schedule for\n  tomorrow at 9am"\n\nClaude Code: I\'ll handle that.\n  Found your Hashnode integration.\n  Composing and scheduling the post.\n\n  Done! Your post is scheduled.\n  Post ID: abc-123'})]}),(0,a.jsxs)("div",{className:"flex flex-col gap-6 p-6 sm:p-8 bg-[#1A1919] rounded-[20px] border border-white border-opacity-10",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)("div",{className:"w-12 h-12 sm:w-14 sm:h-14 flex items-center justify-center bg-[#D97757] rounded-xl",children:(0,a.jsx)("span",{className:"text-2xl sm:text-3xl",children:"\uD83D\uDCBB"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-[20px] leading-[22px] sm:text-[24px] sm:leading-[26.4px] font-jakarta font-semibold",children:"Parallel Tasks"}),(0,a.jsx)("p",{className:"text-[14px] text-[#d1d1d1]",children:"Multiple tasks at once"})]})]}),(0,a.jsx)("p",{className:"text-[16px] leading-[24px] sm:text-[18px] sm:leading-[27px] text-[#d1d1d1]",children:"Claude Code runs headless with claude -p, so several tasks can run in parallel. Schedule posts to different platforms while it works on other coding tasks."}),(0,a.jsx)(C,{title:"Claude Code Parallel Tasks",children:'# Run multiple posting tasks in parallel\n$ claude -p "Schedule a post about our\n  launch to X for tomorrow 9am" &\n\n$ claude -p "Write a LinkedIn article\n  about our new feature and schedule\n  for tomorrow noon" &\n\n$ claude -p "Fix the bug in auth.ts"\n\n# All three tasks run simultaneously'})]})]}),(0,a.jsx)("div",{className:"bg-[#0e0e0e] rounded-[20px] p-6 sm:p-10 border border-white border-opacity-10",children:(0,a.jsxs)("div",{className:"flex flex-col md:flex-row gap-8",children:[(0,a.jsxs)("div",{className:"flex-1 space-y-4",children:[(0,a.jsx)("h4",{className:"text-[20px] leading-[22px] sm:text-[24px] sm:leading-[26.4px] font-jakarta font-semibold",children:"Why Claude Code + Postiz for Hashnode"}),(0,a.jsx)("p",{className:"text-[16px] leading-[24px] text-[#d1d1d1]",children:"Claude Code's autonomous execution makes Postiz a natural fit. The agent reads the SKILL.md to understand every available command, then autonomously chains them together for Hashnode workflows."}),(0,a.jsx)("ul",{className:"space-y-3",children:["Runs in your terminal or IDE — just type what you want","Permission-based execution — you stay in control","Parallel task support — post while coding","Publication ID and tags resolved automatically from your settings","Cross-post to Hashnode + other platforms in a single session","Powered by Claude — Anthropic&apos;s most capable models"].map((e,t)=>(0,a.jsxs)("li",{className:"flex items-start gap-3 text-[16px] leading-[24px] text-[#d1d1d1]",children:[(0,a.jsx)("span",{className:"text-[#682EE1] mt-1 shrink-0",children:"✓"}),e]},t))})]}),(0,a.jsx)("div",{className:"flex-1",children:(0,a.jsx)(C,{title:"SKILL.md (auto-discovered)",children:"---\nname: postiz\ndescription: Social media automation\n  CLI for scheduling posts across\n  30+ platforms including Hashnode\nmetadata:\n  claude-code:\n    requirements:\n      env:\n        - POSTIZ_API_KEY\n      binaries:\n        - postiz\n---\n\n# Available Commands\n- postiz integrations:list\n- postiz integrations:settings <id>\n- postiz posts:create\n- postiz upload <file>\n- postiz analytics:platform <id>\n\n# Hashnode Settings\ntitle, subtitle, main_image,\ncanonical, publication, tags"})})]})})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[1200px] mx-auto 
1space-y-[40px] sm:space-y-[60px]",children:[(0,a.jsxs)("div",{className:"flex flex-col items-center space-y-4",children:[(0,a.jsx)("h2",{className:"text-center",children:"Also Works with Claude Cowork"}),(0,a.jsxs)("p",{className:"max-w-[700px] text-center text-[18px] leading-[23.44px] sm:text-[22px] sm:leading-[28.64px] text-[#d1d1d1]",children:["Postiz works with any AI agent that can run commands or call MCP tools. That includes"," ",(0,a.jsx)(c(),{href:"/claude-cowork",className:"text-[#a87fef] hover:text-white transition-colors",children:"Claude Cowork"}),", Anthropic's desktop agent, and the"," ",(0,a.jsx)(c(),{href:"/claude",className:"text-[#a87fef] hover:text-white transition-colors",children:"Claude.ai connector"}),". See the"," ",(0,a.jsx)(c(),{href:"/agent",className:"text-[#a87fef] hover:text-white transition-colors",children:"agents overview"})," ","for every supported agent."]})]}),(0,a.jsx)("div",{className:"max-w-[900px] mx-auto",children:(0,a.jsxs)("div",{className:"flex flex-col gap-6 p-6 sm:p-8 bg-[#1A1919] rounded-[20px] border border-white border-opacity-10",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4",children:[(0,a.jsx)("div",{className:"w-12 h-12 sm:w-14 sm:h-14 flex items-center justify-center bg-[#D97757] rounded-xl",children:(0,a.jsx)("span",{className:"text-2xl sm:text-3xl font-bold text-white",children:"C"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h4",{className:"text-[20px] leading-[22px] sm:text-[24px] sm:leading-[26.4px] font-jakarta font-semibold",children:"Claude Cowork"}),(0,a.jsx)("p",{className:"text-[14px] text-[#d1d1d1]",children:"by Anthropic"})]})]}),(0,a.jsx)("p",{className:"text-[16px] leading-[24px] sm:text-[18px] sm:leading-[27px] text-[#d1d1d1]",children:"Claude Cowork reads the Postiz skill so it knows what it can do, then autonomously discovers your Hashnode integration, uploads your cover image, resolves publication and tag IDs, and publishes the post."}),(0,a.jsx)(C,{title:"Claude Cowork",children:"> Publish my Node.js streams guide to\n  Hashnode with a cover image and tags\n\nClaude Cowork: Done! Scheduled on Hashnode for\n  tomorrow at 9:00 AM."})]})})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[1200px] mx-auto space-y-[40px]",children:[(0,a.jsx)("h2",{className:"text-center",children:"Post to Hashnode and other platforms from Claude Code"}),(0,a.jsx)("p",{className:"max-w-[700px] mx-auto text-center text-[18px] leading-[23.44px] sm:text-[20px] sm:leading-[28.64px] text-[#d1d1d1]",children:"One request can schedule the same content to Hashnode and other channels, and each platform keeps its own settings. Every platform below has its own Claude Code guide."}),(0,a.jsx)("div",{className:"max-w-[900px] mx-auto",children:(0,a.jsx)(C,{title:"Example",children:'> Post "Excited to announce our new feature!" to\n  Hashnode and Dev.to tomorrow at 9am, then schedule\n  a daily tip on Hashnode every weekday at 10am\n\nClaude Code: Done! Scheduled:\n  - Hashnode + Dev.to: tomorrow 9:00 AM\n  - Daily tips on Hashnode: Mon-Fri 10:00 AM'})}),(0,a.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:w.map(e=>{let{name:t,slug:s}=e;return(0,a.jsxs)(c(),{href:"/claude-code/".concat(s),className:"flex items-center justify-between p-5 bg-[#1A1919] rounded-[16px] border border-white border-opacity-10 hover:border-[#682EE1] hover:border-opacity-50 transition-all group",children:[(0,a.jsxs)("span",{className:"text-[18px] font-jakarta font-semibold group-hover:text-[#a87fef] transition-colors",children:["Post to ",t," from Claude Code"]}),(0,a.jsx)("span",{className:"text-[#d1d1d1] group-hover:text-[#682EE1] transition-colors",children:"→"})]},s)})}),(0,a.jsxs)("p",{className:"text-center text-[14px] leading-[22px] text-[#d1d1d1]",children:["See all 25 platforms in the"," ",(0,a.jsx)(c(),{href:"/claude-code",className:"text-[#a87fef] hover:text-white transition-colors",children:"Claude Code social media guide"}),", compare agents on the"," ",(0,a.jsx)(c(),{href:"/agent",className:"text-[#a87fef] hover:text-white transition-colors",children:"AI agents overview"}),", read about the"," ",(0,a.jsx)(c(),{href:"/mcp",className:"text-[#a87fef] hover:text-white transition-colors",children:"Postiz MCP server"}),", or check"," ",(0,a.jsx)(c(),{href:"/pricing",className:"text-[#a87fef] hover:text-white transition-colors",children:"pricing"}),". For the channel itself, see",(0,a.jsx)(c(),{href:"/channels/hashnode",className:"text-[#a87fef] hover:text-white transition-colors",children:"Hashnode scheduling features in Postiz"}),"."]})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] px-5 w-full",children:(0,a.jsxs)("div",{className:"max-w-[900px] mx-auto 
1space-y-[30px] sm:space-y-[40px]",children:[(0,a.jsx)("h2",{className:"text-center",children:"Hashnode and Claude Code: frequently asked questions"}),(0,a.jsx)("div",{className:"space-y-4",children:f.map((e,t)=>{let{question:s,answer:o}=e;return(0,a.jsxs)("div",{className:"p-6 sm:p-8 bg-[#1A1919] rounded-[16px] sm:rounded-[20px] border border-white border-opacity-10",children:[(0,a.jsx)("h3",{className:"text-[18px] leading-[24px] sm:text-[20px] sm:leading-[26px] font-jakarta font-semibold",children:s}),(0,a.jsx)("p",{className:"mt-3 text-[16px] leading-[24px] sm:text-[18px] sm:leading-[27px] text-[#d1d1d1]",children:o})]},t)})})]})}),(0,a.jsx)("section",{className:"py-[50px] sm:py-[90px] sm:px-5 w-full",children:(0,a.jsxs)("div",{className:"flex flex-col lg:flex-row justify-between items-left lg:items-center gap-10 px-5 py-10 sm:p-15 rounded-none sm:rounded-[20px] w-full max-w-[1200px] mx-auto",style:{backgroundColor:"#682EE1"},children:[(0,a.jsxs)("div",{className:"space-y-5 sm:space-y-4",children:[(0,a.jsx)("h3",{className:"text-left text-[30px] leading-[33px] sm:text-[48px] sm:leading-[52.8px] font-jakarta font-[700]",children:"Start publishing to Hashnode"}),(0,a.jsx)("p",{className:"max-w-[620px] text-white text-left text-[18px] leading-[23.44px] sm:text-[22px] sm:leading-[28.64px] font-[400]",children:"Install Postiz Agent and automate your Hashnode content strategy with AI-powered scheduling and publishing."})]}),(0,a.jsx)("div",{className:"flex flex-col sm:flex-row gap-4",children:(0,a.jsx)(x.zx,{variant:"primary",size:"lg",asLink:"https://docs.postiz.com/providers/hashnode",alt:"Get started with Hashnode",reverseColor:!0,children:"Get Started"})})]})})]})]})})}},function(e){e.O(0,[7947,7246,5154,2888,9774,179],function(){return e(e.s=44825)}),_N_E=e.O()}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.