@edtools/cli
v0.7.2
Published
AI-Powered Content Marketing CLI - Generate, validate, and optimize SEO content with data-driven insights
Downloads
1,652
Maintainers
Readme
@edtools/cli
Generate SEO-optimized content for LLM discovery
Make your product discoverable by AI assistants like Claude and ChatGPT through semantic search and SEO-optimized static pages.
Features
- ✅ Framework Agnostic - Works with HTML, Next.js, and more
- ✅ AI-Powered - Uses Claude to generate high-quality content
- ✅ SEO Optimized - Built-in SEO scoring and Schema.org markup
- ✅ Local Processing - No centralized database, everything runs locally
- ✅ Anti-Spam Safeguards - Prevents Google penalties with rate limiting
- ✅ Extensible - Plugin system for custom adapters
Quick Start
Installation
npm install -g @edtools/cliSetup
cd your-project
edtools initThis will:
- Analyze your landing page
- Create
edtools.config.js - Prompt for product information
Generate Content
# Set your Anthropic API key
export ANTHROPIC_API_KEY=sk-ant-...
# Generate 3 blog posts
edtools generateHow It Works
Your Landing Page
↓
edtools init (analyzes & creates config)
↓
edtools generate (creates blog posts)
↓
Static HTML files optimized for:
- Google SEO
- AI crawlers (Claude, ChatGPT)
- Schema.org markup
- llms.txt formatCLI Commands
edtools init
Initialize edtools in your project.
edtools init [options]
Options:
-p, --path <path> Project path (default: current directory)edtools generate
Generate SEO-optimized blog posts.
edtools generate [options]
Options:
-n, --posts <number> Number of posts (default: 3, max: 10)
-t, --topics <topics...> Specific topics to write about
-o, --output <dir> Output directory (default: ./blog)
--api-key <key> Anthropic API keyExample:
edtools generate -n 5 -o ./content/blogedtools config
View or set configuration.
edtools config [options]
Options:
--set-api-key <key> Set Anthropic API keyConfiguration
The edtools.config.js file contains your product information:
module.exports = {
product: {
name: "My Product",
tagline: "One-line description",
description: "Longer description...",
category: "productivity",
websiteUrl: "https://myproduct.com",
pricingModel: "freemium",
features: [
"Feature 1",
"Feature 2",
],
},
content: {
outputDir: './blog',
generateBlog: true,
},
seo: {
siteMapPath: './sitemap.xml',
robotsPath: './robots.txt',
allowAICrawlers: true,
},
};Architecture
Framework Agnostic Design
Edtools uses a 3-layer architecture:
- Core Layer - Generates content in universal JSON format
- Adapter Layer - Converts JSON to framework-specific code
- Template Layer - Renders final output
Current Adapters:
- ✅ HTML (static)
- 🔄 Next.js (coming in v1.1)
- 🔄 Markdown (coming in v1.1)
Avoiding Google Penalties
Edtools includes safeguards to prevent spam detection:
- Rate Limiting: Maximum 10 posts per run
- Spacing Recommendations: Warns if generating too quickly
- Human Review: Generated content requires review before publishing
- SEO Scoring: Validates content quality
- No Keyword Stuffing: Natural language generation
Best Practices
- Generate Slowly: 3-5 posts per week maximum
- Review Content: Always add personal experience/expertise
- Space Publications: Wait 3-7 days between batches
- Verify Facts: Check all statistics and claims
- Add Examples: Include real-world use cases
API Usage (Programmatic)
import { ContentGenerator } from '@edtools/cli';
const generator = new ContentGenerator(apiKey);
const result = await generator.generate({
productInfo: {
name: "My Product",
category: "productivity",
// ...
},
outputDir: './blog',
count: 3,
});Requirements
- Node.js 18+
- Anthropic API key (get one here)
Roadmap
- [ ] v1.1: MCP Server for Claude Code integration
- [ ] v1.1: Next.js adapter
- [ ] v1.1: Markdown adapter
- [ ] v1.2: Local embeddings for duplicate detection
- [ ] v1.3: Shopify adapter
- [ ] v2.0: Dashboard web interface
Contributing
Contributions are welcome! Please see CONTRIBUTING.md.
License
MIT © Edtools Team
Links
- Documentation: https://docs.edtools.dev
- GitHub: https://github.com/edtools/cli
- Issues: https://github.com/edtools/cli/issues
Made with ❤️ to help products get discovered by AI assistants
