The Laravel AI Chat starter kit, created by Pushpak Chhajed, is a modern starter kit that features real-time streaming responses using Prism, Inertia.js, Vue.js, and Tailwind CSS. If you want to quickly set up a new Laravel application with AI chat functionality, this is a good starting point.
Main Features
- Real-time AI Responses: Stream AI responses as they're generated
- Reasoning Support: Built-in support for AI models with reasoning capabilities
- Multiple AI Providers: Support for OpenAI, Anthropic, Google Gemini, Ollama, Groq, Mistral, DeepSeek, xAI, and VoyageAI
- Authentication System: Built-in user authentication and management
- Appearance Settings: Light/dark mode support with system preference detection
- Custom Theming: Shadcn integration allows easy theme customisation via CSS variables
- Chat Sharing: Share conversations with other users
You can install this starter kit using laravel new:
laravel new --using=pushpak1300/ai-chat my-ai-chatcd my-ai-chatcomposer run dev
As part of this starter kit, there is an app/Enums/ModelName.php file for you to define the names of the models you would like to make available.
<?php declare(strict_types=1); namespace App\Enums; use Prism\Prism\Enums\Provider; enum ModelName: string{ case GPT_4O_MINI = 'gpt-4o-mini'; case GPT_4_1_NANO = 'gpt-4.1-nano'; case O4_MINI = 'o4-mini'; // Adding other models case MY_NEW_MODEL = 'my-new-model-2-micro' /** * @return array{id: string, name: string, description: string, provider: string}[] */ public static function getAvailableModels(): array { return array_map( fn (ModelName $model): array => $model->toArray(), self::cases() ); } public function getName(): string { return match ($this) { self::GPT_4O_MINI => 'GPT-4o mini', self::GPT_4_1_NANO => 'GPT-4.1 Nano', self::O4_MINI => 'O4 mini', self::MY_NEW_MODEL => 'Human-Readable Name', }; } public function getDescription(): string { return match ($this) { self::GPT_4O_MINI => 'Cheapest model, best for smarter tasks', self::GPT_4_1_NANO => 'Cheapest model, best for simpler tasks', self::O4_MINI => 'Reasoning model, best for complex tasks', self::MY_NEW_MODEL => 'Brief description of model capabilities', }; } public function getProvider(): Provider { return match ($this) { self::GPT_4O_MINI => Provider::OpenAI, self::GPT_4_1_NANO => Provider::OpenAI, self::O4_MINI => Provider::OpenAI, self::MY_NEW_MODEL => Provider::YourProvider, }; } /** * @return array{id: string, name: string, description: string, provider: string} */ public function toArray(): array { return [ 'id' => $this->value, 'name' => $this->getName(), 'description' => $this->getDescription(), 'provider' => $this->getProvider()->value, ]; }}
Pushpak has several other features on the Roadmap, including Multimodal Support, Tool Call Support, Image Generation, and Resumable Streams. Contributions are welcome, so if you'd like to lend a hand in making this starter kit better with these or any other features, you're invited to do so.
Learn more about this package and view the source code on GitHub.