FranciscoMoretti/sparka

Production-ready AI chat. Start here and make it your own. Formerly Sparka AI

1,194

stars

2,096

commits

TypeScript

primary language

Sep 6, 2026

updated

chatjs.dev
ai
anthropic
chat
chatbot
chatgpt
claude
gemini
gemini-ai
grok
llm
multiprovider
openai
xai

README

ChatJS

ChatJS

Stop rebuilding the same AI chat infrastructure. ChatJS gives you a production-ready foundation with authentication, 120+ models, streaming, and tools so you can focus on what makes your app unique.

Website · Live Demo · Documentation

DemosOnly


CLI

Create a new ChatJS app:

npx @chat-js/cli@latest create my-app

The CLI walks you through gateway, features, and auth choices, generates chat.config.ts, and lists the env vars required by your selections.

Features

  • 120+ Models: Claude, GPT, Gemini, Grok via one API
  • Auth: GitHub, Google, anonymous. Ready to go.
  • Attachments: Images, PDFs, docs. Drag and drop.
  • Resumable Streams: Continue generation after page refresh
  • Branching: Fork conversations, explore alternatives
  • Sharing: Share conversations with public links
  • Web Search: Real-time web search integration
  • Image Generation: AI-powered image creation
  • Code Execution: Run code snippets in sandbox
  • MCP: Model Context Protocol support
  • Desktop App: Package as a native macOS, Windows, or Linux app with Electron

Stack

Monorepo Layout

Development

  • bun dev: run chat app
  • bun dev:info: print this worktree's assigned app URLs
  • bun dev:docs: run docs
  • bun lint: run workspace lint
  • bun test:types: run chat app typecheck

Set CHATJS_DEV_SLOT in .env.worktree.local to reserve a stable range of ten ports per worktree. Within each range, chat uses offset 0, Electron uses 1, and the site uses 2, as configured in .worktree-env.json. The local file is ignored by Git and kept separate from Vercel-managed .env.local. Run bun dev:info instead of assuming a port.

Releases

Releases are driven by Changesets for the whole repository.

  • Add a changeset for each releasable package you change.
  • Merge the generated version PR from the Changesets workflow.
  • Public packages such as @chat-js/cli publish to npm.
  • Desktop installers for @chat-js/electron publish to GitHub Releases.

License

Apache-2.0


Vercel OSS Program

Contributors

FranciscoMoretti

2,061 commits

saurabhp75

8 commits

cursoragent

8 commits

FranciscoMoretti/sparka

Production-ready AI chat. Start here and make it your own. Formerly Sparka AI

1,194

stars

2,096

commits

TypeScript

primary language

Sep 6, 2026

updated

chatjs.dev
ai
anthropic
chat
chatbot
chatgpt
claude
gemini
gemini-ai
grok
llm
multiprovider
openai
xai

README

ChatJS

ChatJS

Stop rebuilding the same AI chat infrastructure. ChatJS gives you a production-ready foundation with authentication, 120+ models, streaming, and tools so you can focus on what makes your app unique.

Website · Live Demo · Documentation

DemosOnly


CLI

Create a new ChatJS app:

npx @chat-js/cli@latest create my-app

The CLI walks you through gateway, features, and auth choices, generates chat.config.ts, and lists the env vars required by your selections.

Features

  • 120+ Models: Claude, GPT, Gemini, Grok via one API
  • Auth: GitHub, Google, anonymous. Ready to go.
  • Attachments: Images, PDFs, docs. Drag and drop.
  • Resumable Streams: Continue generation after page refresh
  • Branching: Fork conversations, explore alternatives
  • Sharing: Share conversations with public links
  • Web Search: Real-time web search integration
  • Image Generation: AI-powered image creation
  • Code Execution: Run code snippets in sandbox
  • MCP: Model Context Protocol support
  • Desktop App: Package as a native macOS, Windows, or Linux app with Electron

Stack

Monorepo Layout

Development

  • bun dev: run chat app
  • bun dev:info: print this worktree's assigned app URLs
  • bun dev:docs: run docs
  • bun lint: run workspace lint
  • bun test:types: run chat app typecheck

Set CHATJS_DEV_SLOT in .env.worktree.local to reserve a stable range of ten ports per worktree. Within each range, chat uses offset 0, Electron uses 1, and the site uses 2, as configured in .worktree-env.json. The local file is ignored by Git and kept separate from Vercel-managed .env.local. Run bun dev:info instead of assuming a port.

Releases

Releases are driven by Changesets for the whole repository.

  • Add a changeset for each releasable package you change.
  • Merge the generated version PR from the Changesets workflow.
  • Public packages such as @chat-js/cli publish to npm.
  • Desktop installers for @chat-js/electron publish to GitHub Releases.

License

Apache-2.0


Vercel OSS Program

Contributors

FranciscoMoretti

2,061 commits

saurabhp75

8 commits

cursoragent

8 commits

Languages

TypeScript

86.8%

MDX

12.2%