Something went wrong. Try again.
ATProto-based AI Assistant Chat interface.
Something went wrong. Try again.
Files
README.md
Shared Computer Network AI Assistant Chat #
SCN Chat is an ATProto AI assistant chat interface allowing users to use their spaces capable PDS to host their chat history.
Status: early development. atproto spaces are in alpha, so expect breaking changes and do not store anything sensitive.
How it works #
- Every chat is its own space. Each conversation lives in a permissioned space on the user's PDS.
- Sharing uses the space's read policy. A chat can be shared read-only with specific people, or made public to anyone with an atproto account.
- Your PDS is the API. Any client can hold a conversation by writing records directly to the PDS. See lexicons/README.md for the conventions.
- Bring your own keys. Users can add API keys for any provider, admins can configure models for everyone. Any OpenAI-compatible endpoint is supported.
- No spaces yet? Due to the alpha nature of permissioned spaces, the first phase of this app supports storing chats in the app's own database. Users still need an atproto account to sign in.
Features #
Phase 1:
- One-on-one chat with streaming replies
- Read-only sharing
- Image attachments for vision models
- PDF text extraction
- Automatic chat titles
- Chat history search
- User and admin model configuration
Future:
- Web search and URL fetch, as plugins
- Image generation, as a plugin
- PDF OCR
- Speech to text and text to speech
- E2EE support for chat history
- Memories
- MCP servers as tools
- Browser and push notifications, and an installable PWA
Getting started #
Requirements: #
- Node 22.18 or newer (Node 24 is recommended)
- pnpm 10
- An ATProto account to sign in with.
- A spaces enabled PDS (currently optional)
Setup #
- Install dependencies:
pnpm install cp .env.example .env- Run
pnpm keysto generate secret keys. CopyOAUTH_PRIVATE_KEYSandSECRET_KEYinto your.env. - Set your AI inference provider API keys.
- Copy config.example.yml to config.yml. The defaults are setup for local development.
- Configure your supported AI models.
Start the app #
- Run
pnpm dev - Open http://127.0.0.1:5173 and sign in with your ATProto handle.
Extending #
Model providers, tools, file ingesters, and turn hooks are all plugins, so anyone can build their own integration. See:
License #
·
Copy SHA
·
Copy SHA
·
Copy SHA
·
Copy SHA
·
Copy SHA
·
Copy SHA
- TypeScript 99%
- CSS <1%
- HTML <1%