Transform ideas into publishable book series with AI-powered automation
Generate complete, professional book series from simple concepts using advanced AI agents, multi-provider LLM support, and automated publishing workflows.
The CLI uses a session-based workflow where each command saves data for the next:
generate-idea β generate-book β generate-pdf β generate-images
β β β β
Series Idea Book Plan PDF Files Images
# 1. Setup
git clone <repository-url> && cd book-series-generator
poetry install && cp .env.example .env
# Edit .env and add your OPENAI_API_KEY
# 2. Test setup
poetry run bsg init
# 3. Create series idea (REQUIRED FIRST!)
poetry run bsg generate-idea --concept "friendly dragons help children" --num-books 2
# 4. Plan first book (uses series from step 3)
poetry run bsg generate-book --book-number 1
# 5. Create PDF (uses book plan from step 4)
poetry run bsg generate-pdf --book-number 1
# 6. Check results
poetry run bsg status && ls output/π See CLI_QUICK_START.md for comprehensive instructions, troubleshooting, and examples.
Result: You now have a complete book ready for images and publishing! π
- OpenAI (GPT-4, GPT-3.5-turbo)
- Anthropic (Claude-3 Opus, Sonnet, Haiku)
- Grok (via X.AI API)
- Ollama (Local models)
- Automatic fallbacks between providers
- π‘ Generate Ideas - AI creates series concepts and outlines
- π Plan Books - Detailed chapter and scene planning
- π Create PDFs - Professional formatting without images
- πΌοΈ Add Images - Character-consistent illustrations (setup ready)
- π Publish - Amazon KDP automation (coming soon)
- Component testing for all system parts
- LLM provider validation and fallbacks
- PDF generation verification
- Interactive debugging tools
- Easy .env file setup for all API keys and settings
- Choose your preferred LLM provider
- Adjust generation parameters
- Comprehensive environment validation
- Session management with state persistence
- Rich console output with progress tracking
The system uses environment variables for API keys and configuration. The easiest way is to use a .env file:
# Copy the example file
cp .env.example .env
# Edit with your favorite editor
nano .envOPENAI_API_KEY- For GPT models and DALL-E image generation
ANTHROPIC_API_KEY- For Claude models (backup LLM)GROK_API_KEY- For X.AI Grok models (additional backup)AMAZON_EMAIL&AMAZON_PASSWORD- For KDP automationAPIFY_API_KEY- For market research data
The bsg init command will help you set up your .env file:
poetry run bsg init
# Prompts to create .env from example
# Offers to open in your default editor
# Validates all configuration# Set up and validate system
poetry run bsg init
# Test individual components
poetry run bsg test-components
# Check configuration
poetry run bsg status# Generate series idea
poetry run bsg generate-idea \
--concept "underwater adventures teaching ocean science" \
--audience "children 8-12" \
--num-books 4
# Plan each book individually
poetry run bsg generate-book --book-number 1 --interactive
poetry run bsg generate-book --book-number 2
poetry run bsg generate-book --book-number 3
# Generate PDFs (without images first)
poetry run bsg generate-pdf --book-number 1
poetry run bsg generate-pdf --book-number 2 --include-placeholders# Set up image generation (MCP integration)
poetry run bsg generate-images --series --type covers
# Validate everything
poetry run bsg validate
# Check final status
poetry run bsg status| Command | Purpose | Example |
|---|---|---|
init |
Initialize and validate system | bsg init |
generate-idea |
Create series concept and outline | bsg generate-idea -c "space adventures" |
generate-book |
Plan specific book in detail | bsg generate-book -b 1 --interactive |
generate-pdf |
Create formatted PDF | bsg generate-pdf -b 1 -p |
generate-images |
Set up image generation | bsg generate-images --series |
test-components |
Test all system components | bsg test-components |
validate |
Validate current progress | bsg validate --step pdf |
status |
Show session progress | bsg status |
# Required (choose at least one)
OPENAI_API_KEY=your_openai_key
ANTHROPIC_API_KEY=your_anthropic_key
GROK_API_KEY=your_grok_key
# Optional for full automation
AMAZON_EMAIL=your_amazon_email
AMAZON_PASSWORD=your_amazon_password
APIFY_API_KEY=your_apify_key# Use specific provider and model
bsg --provider openai --model gpt-4 generate-idea -c "adventure story"
bsg --provider anthropic --model claude-3-opus generate-book -b 1
bsg --provider grok --model grok-beta generate-pdf -b 1# Via config or CLI options
target_audience = "children 6-10" # Age range
number_of_books = 3 # Series length
target_book_length = 5000 # Words per book
reading_level = "grade 3" # Complexity
include_educational_elements = Truebook-series-generator/
βββ π pyproject.toml # Poetry configuration
βββ π README.md # This file
βββ π src/book_series_generator/
β βββ π§ models/ # Pydantic data models
β βββ π€ agents/ # AI agents for generation
β βββ π§ services/ # Core services (LLM, generation)
β βββ π pdf/ # PDF generation
β βββ πΌοΈ image_generation/ # Image generation (MCP)
β βββ π automation/ # Publishing automation
β βββ π₯οΈ cli.py # Command-line interface
βββ π tests/ # Comprehensive test suite
βββ π docs/ # Detailed documentation
βββ π output/ # Generated content
# Test all components
poetry run bsg test-components
# Test specific parts
poetry run pytest tests/unit/test_llm_service.py
poetry run pytest tests/integration/ -v# Validate each step
poetry run bsg validate --step idea # Check series concept
poetry run bsg validate --step book # Check book plans
poetry run bsg validate --step pdf # Check PDF generation
poetry run bsg validate # Validate everything# Code quality
poetry run black src/ tests/
poetry run isort src/ tests/
poetry run flake8 src/
poetry run mypy src/
# Test coverage
poetry run pytest --cov=book_series_generator --cov-report=html- Add provider config in
src/book_series_generator/models/llm_config.py - Implement provider class in
src/book_series_generator/services/llm_service.py - Test with
poetry run bsg test-components
- Add new commands in
src/book_series_generator/cli.py - Implement validation in CLI validation functions
- Add tests in
tests/unit/test_cli.py
- Modify
src/book_series_generator/pdf/templates.py - Test with
poetry run bsg generate-pdf --include-placeholders - Validate with
poetry run bsg validate --step pdf
β "No LLM providers available"
# Check API keys
echo $OPENAI_API_KEY
echo $ANTHROPIC_API_KEY
# Test providers
poetry run bsg test-componentsβ "PDF generation failed"
# Check dependencies
poetry install
# Test PDF generation
poetry run bsg test-componentsβ "Session state lost"
# Check session directory
poetry run bsg status
# Start new session
poetry run bsg init# Verbose output
poetry run bsg --verbose test-components
# Check logs in session directory
ls output/session_*/- β Multi-provider LLM support
- β Step-by-step CLI workflow
- β Professional PDF generation
- π§ Image generation (MCP setup ready)
- β³ Amazon KDP automation
- Audiobook generation with text-to-speech
- Multi-language content generation
- Advanced analytics and market research
- Social media integration
- Enterprise API endpoints
This is a private, proprietary system. Contributing guidelines:
- Code Quality: All code must pass tests and type checking
- Documentation: Update docs for any new features
- Testing: Add tests for new functionality
- CLI Integration: New features should integrate with CLI workflow
# Development setup
poetry install --with dev,docs
poetry run pre-commit install
# Before committing
poetry run pytest
poetry run black src/ tests/
poetry run mypy src/System Status: Production ready for content generation Testing: Comprehensive test suite with 80%+ coverage Documentation: Complete CLI reference and step-by-step guides
For issues:
- Run
poetry run bsg test-components - Check
poetry run bsg status - Review session logs in
output/session_*/
Ready to generate your first book series? Start with poetry run bsg init! π