mrshanebarron / pneuma-ai-core
Shared AI backend for LaravelDesign, Elgg, and any PHP application that wants first-class Anthropic Claude integration. Ships an HTTP client, reusable prompt templates, per-user/per-license usage tracking, and license-key validation.
Requires
- php: ^8.2
- guzzlehttp/guzzle: ^7.0
Requires (Dev)
- phpunit/phpunit: ^11.0
README
Shared AI backend for LaravelDesign, Elgg, and any PHP application that wants first-class Anthropic Claude integration. Ships an HTTP client, reusable prompt templates, per-actor usage tracking, and offline license-key validation.
Install
composer require mrshanebarron/pneuma-ai-core
Requires PHP 8.2+.
Quick start
use MrShaneBarron\PneumaAiCore\AnthropicClient; use MrShaneBarron\PneumaAiCore\PromptTemplate; $claude = new AnthropicClient($_ENV['ANTHROPIC_API_KEY']); $prompt = PromptTemplate::draftPost( title: 'Why Laravel deserved a first-class CMS', outline: "- Laravel CMS gap\n- Existing options\n- What changes with LaravelDesign" ); $response = $claude->message( prompt: $prompt['user'], system: $prompt['system'], ); echo $response['text'];
What it ships
AnthropicClient
Thin HTTP wrapper over Anthropic's Messages API. Supports multi-turn, custom model IDs (Opus, Sonnet, Haiku), and returns parsed text plus usage metadata.
PromptTemplate
Catalog of reusable prompts used across LaravelDesign's content assistant and Elgg's Pneuma plugin:
draftPost(title, outline?)— full blog post draftsummarize(content, targetSentences = 3)— TL;DR generationimproveParagraph(paragraph, style?)— rewrite selected texttranslate(content, targetLanguage)— preserve HTML + registermetaDescription(content)— SEO auto-fillgenerateTags(content, count = 5)— topical tag suggestionsfeaturedImagePrompt(content)— image-gen prompt builder
UsageTracker
Per-actor rolling-window token and call counters. Enforce quotas without persisting to disk.
LicenseValidator
Offline HMAC-signed license keys with embedded tier and expiry. No phone-home, no external service, no revocation complexity.
Consumer packages
- mrshanebarron/laraveldesign-pneuma — Filament plugin for LaravelDesign
- mrshanebarron/elgg-pneuma — Elgg plugin with chat widget
License
MIT.