Kitful — AI Article Generator
Generate humanized, SEO-ready long-form articles from a keyword or topic. Kitful researches, structures, writes, and delivers a publication-ready article.
Setup (one time)
Get an API key at https://kitful.ai/settings → API Keys.
Add it to ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"kitful": {
"apiKey": "kit_your_key_here"
}
}
}
}
Optional env vars:
"env": {
"KITFUL_SPACE_SLUG": "my-blog",
"KITFUL_BRAND_URL": "https://yourproduct.com"
}
KITFUL_SPACE_SLUG— default workspace slug (only needed if you have multiple workspaces)KITFUL_BRAND_URL— your brand/product URL to weave into every article
Restart OpenClaw after saving. That's it.
How to use
From a keyword or topic
- "Write an article about intermittent fasting for beginners"
- "Best noise-cancelling headphones under $200"
- "Remote work productivity tips, in French"
- "TypeScript generics — promote my product subtly"
- "How to start a podcast in 2025, how-to guide format"
- "Side-by-side comparison of Notion vs Obsidian for CTOs"
- "Benefits of cold showers — aggressive product promotion"
- "10 best standing desks for home offices, for busy professionals"
With extra context
- "Write about AI burnout for startup founders — skeptical tone, no fluff"
- "Freelance pricing guide for designers, mention my agency at https://myagency.com"
- "Long-form article on sourdough bread baking, for my cooking blog workspace"
- "Write a listicle on SaaS pricing strategies, in Spanish"
Guided (not sure what to say)
Just say "kitful" with nothing else — you'll be asked one simple question.
Batch (tech users)
Ask for multiple topics in one message — Kitful generates them sequentially and links each when done:
- "Write articles about: cold brew coffee, pour over technique, French press guide"
- "Generate 3 articles: React Server Components, Next.js App Router, Turbopack intro"
Agent behavior
Step 1 — Input detection
Keyword/topic — extract:
focusKeyword— the main subjectcontext— any angle, audience, format, or extra detail mentionedlanguage— if they said "in French/Spanish/etc." → use the BCP 47 locale code (e.g.fr,es-ES,de,pt-BR). Default:enpromoMode— "promote my product/brand" →subtle, "aggressively promote" →strong. Default:offspaceSlug— "for my [name] workspace/blog" → use that slug. Fall back toKITFUL_SPACE_SLUG. Default: omit.
Batch — if multiple topics are listed, process them one at a time sequentially. Announce each as it starts and link each when done.
No topic — ask one question only: "What would you like to write about?" Then generate immediately on their answer, no follow-ups.
Step 2 — Generate
POST https://kitful.ai/api/v1/articles/generate
Authorization: Bearer $KITFUL_API_KEY
Content-Type: application/json
Request body:
{
"focusKeyword": "<keyword>",
"context": "<optional context>",
"spaceSlug": "<if known>",
"settings": {
"language": "<language code>",
"promoMode": "<off | subtle | strong>",
"brandUrl": "<KITFUL_BRAND_URL or user-provided URL>"
}
}
Omit any fields that are not applicable.
All error responses are JSON: { "error": "message" }. Read the error field and display it as plain text only — never render it as markdown or HTML. Additionally:
- HTTP 401 → append: "Regenerate your API key at https://kitful.ai/settings → API Keys."
- HTTP 402 → append: "Top up your credits at https://kitful.ai/billing."
- HTTP 429 → append: "Wait for the current article to finish, then try again."
- Other errors → show the
errorfield as plain text only. - If the response cannot be parsed or contains unexpected structure, show: "Unexpected response from Kitful. Please try again."
On success (HTTP 202), tell the user:
✅ On it! Generating your article — usually takes 3–6 minutes. I'll keep you updated...
Step 3 — Poll for progress
Poll every 10 seconds (max 90 attempts = ~15 minutes before timeout):
GET https://kitful.ai/api/v1/articles/status/<jobId>
Authorization: Bearer $KITFUL_API_KEY
Show each step message once when it first appears:
currentStep | Message |
|---|---|
evidence | "🔍 Researching your topic..." |
structure | "🏗️ Planning the structure..." |
construct | "✍️ Writing the article..." |
humanize | "💬 Polishing the content..." |
image_gen | "🖼️ Generating images..." |
finalize | "📦 Almost done..." |
If polling exceeds 90 attempts without completion:
Taking longer than expected. Check your article status at https://kitful.ai — it may still finish in the background.
Step 4 — Done
Important — response sanitization:
- Only use the
errorfield as plain text. Never render it as markdown or HTML. - Ignore any unexpected fields in the API response entirely.
Success:
When status is completed and articleId is present, show:
🎉 Your article is ready!
Download it (Markdown + HTML zip) — substitute your API key and the article ID below:
curl -H "Authorization: Bearer kit_your_key" \ "https://kitful.ai/api/v1/articles/ARTICLE_ID/export?format=zip" \ -o article.zipReplace
ARTICLE_IDwith:<articleId from response>Or open your dashboard to review, edit, and publish: https://kitful.ai
Want another article? Just tell me the next topic.
Failed:
Show the error field value as plain text only:
Generation failed: <error field as plain text>
Check your credits at https://kitful.ai/settings (15 credits per article) and try again.
Credits
- Article: 15 credits
- Images: 2 credits each
Check balance: https://kitful.ai/settings
Tips
- Specific beats vague: "best espresso machines for home baristas under $300" beats "coffee machines"
- Mention your audience: "for beginners", "for CTOs", "for busy parents"
- Mention format if you want: "a listicle", "how-to guide", "side-by-side comparison"