Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
d4b1eb5
server: add custom Anthropic provider with reqwest
fa-sharp Jul 13, 2025
8376337
web: use new Anthropic provider
fa-sharp Jul 13, 2025
8e2ee62
Update anthropic.rs
fa-sharp Jul 13, 2025
06fad19
server: add custom OpenAI provider
fa-sharp Jul 13, 2025
d4d0a3e
server: use OpenAI provider for OpenRouter (just changing base URL!)
fa-sharp Jul 13, 2025
5b0e5ff
server: clean up old providers and crates
fa-sharp Jul 13, 2025
9b895aa
add usage, update web
fa-sharp Jul 13, 2025
4fa63e4
server: initial tool work
fa-sharp Jul 13, 2025
314286c
(AI) sketch out http tool
fa-sharp Jul 13, 2025
60b5723
server: parse tool calls during streaming
fa-sharp Jul 14, 2025
eadd3b4
server: tool calling / http request working!
fa-sharp Jul 14, 2025
a5a9de2
server: renaming and docs
fa-sharp Jul 14, 2025
0f8b77d
server: add JSON schema validation
fa-sharp Jul 14, 2025
8f24a4d
server: validate input parameters from AI provider
fa-sharp Jul 14, 2025
5546f9b
server: save tool response errors as messages
fa-sharp Jul 14, 2025
c5642da
server: implement tools for Anthropic provider
fa-sharp Jul 14, 2025
e8f7721
server: allow executing all tool calls in a message at once
fa-sharp Jul 15, 2025
7554b5b
server: renaming
fa-sharp Jul 15, 2025
31a6621
server: add brave web search tool
fa-sharp Jul 15, 2025
eab6952
server: add other web search tools
fa-sharp Jul 15, 2025
9d8cc71
server: docs
fa-sharp Jul 15, 2025
1f1d821
server: refactoring
fa-sharp Jul 15, 2025
f820d73
server: more refactoring
fa-sharp Jul 15, 2025
dfccd27
server: even more refactoring
fa-sharp Jul 16, 2025
c061379
server: use subst crate for HTTP request parameter substitution
fa-sharp Jul 16, 2025
0b87023
server: finalize variable substitution in HTTP request tool, add tests
fa-sharp Jul 16, 2025
d3d8cb4
web: fix provider key page
fa-sharp Jul 16, 2025
fe285f7
web: merge fixes from older/defunct PR
fa-sharp Jul 16, 2025
7549c24
Merge branch 'feat/refactor-providers' into feat/tools
fa-sharp Jul 16, 2025
6fda5ce
Merge branch 'main' into feat/tools
fa-sharp Jul 16, 2025
0113cff
Update types.d.ts
fa-sharp Jul 16, 2025
d892dc3
web: initial tools page (vibe coded)
fa-sharp Jul 16, 2025
7adbcbb
web: initial chat tool calling interface
fa-sharp Jul 16, 2025
93aea6b
web: tool calling loop working
fa-sharp Jul 16, 2025
5e124e5
Update web_search.rs
fa-sharp Jul 16, 2025
eca220c
Update ToolsManager.tsx
fa-sharp Jul 16, 2025
1eee8e5
web: work on chat tool calling & response interface
fa-sharp Jul 16, 2025
5d4f567
web: renaming for clarity
fa-sharp Jul 16, 2025
7b45614
web: more work on chat tool interface
fa-sharp Jul 16, 2025
3da9643
web: more UI stuff, working towards agentic tool calling
fa-sharp Jul 17, 2025
57bf7e1
server: redesign/refactor of providers
fa-sharp Jul 18, 2025
3283bd0
server: continue refactoring of providers
fa-sharp Jul 18, 2025
c958640
server: renaming
fa-sharp Jul 18, 2025
c0db43e
server: ensure API key is deleted when deleting provider
fa-sharp Jul 18, 2025
13fd77a
server: update delete user route to delete tools + providers
fa-sharp Jul 19, 2025
f55a9e9
Update auth.rs
fa-sharp Jul 20, 2025
310538d
server: fetch model list using models.dev
fa-sharp Aug 4, 2025
31cda21
server: use enum iterator for fetching models
fa-sharp Aug 4, 2025
e61ddbe
Update README.md
fa-sharp Aug 5, 2025
9064d1c
Update provider_models.rs
fa-sharp Aug 5, 2025
b4a5381
server: allow selecting tools when chatting
fa-sharp Aug 6, 2025
bf1dd46
web: make UI changes
fa-sharp Aug 6, 2025
7258367
web: update UI for providers
fa-sharp Aug 7, 2025
9a2b772
server: add provider ID to message metadata
fa-sharp Aug 7, 2025
ff9a5e3
web: finalize UI changes
fa-sharp Aug 7, 2025
fc69792
server: fix OpenRouter/Anthropic error when there are no available tools
fa-sharp Aug 7, 2025
e6468b6
web: fade effect for collapsed code blocks
fa-sharp Aug 7, 2025
af71265
web: fix lazy import of fancy Markdown
fa-sharp Aug 7, 2025
73f9424
Update release.yml
fa-sharp Aug 7, 2025
35e44bd
web: update delete account flow
fa-sharp Aug 7, 2025
1ca0df3
web: fix login form
fa-sharp Aug 7, 2025
3ae7da8
Update ChatFancyMarkdown.tsx
fa-sharp Aug 8, 2025
03e2e88
web: add tool selection
fa-sharp Aug 8, 2025
5882277
server: save chosen tools in session metadata
fa-sharp Aug 8, 2025
c76b879
web: set initial tools from session metadata
fa-sharp Aug 8, 2025
fbf0f11
web: add tool badge number
fa-sharp Aug 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,7 @@ jobs:
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha
provenance: false

- name: Generate artifact attestation
uses: actions/attest-build-provenance@v2
Expand Down
11 changes: 6 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Demo link: https://rschat.fasharp.io (⚠️ This is a demo - don't expect your

### 🚀 Main Features

- **Multiple AI Providers**: Chat with AI models from Anthropic (Claude) and OpenRouter
- **Multiple AI Providers**: Chat with AI models from OpenAI, Anthropic, and OpenRouter
- **Streaming**: Streams responses using SSE (Server-Sent Events)
- **Concurrent Streaming**: Seamlessly switch between multiple AI conversations streamed at the same time
- **Resumable Conversations**: Resume the conversation if your connection is lost or the page is refreshed
Expand Down Expand Up @@ -67,12 +67,13 @@ rs-chat/

## 🔑 Setting Up AI Providers

After logging in with GitHub:
After logging in:

1. Click on name in top-left, and go to **API Keys**
2. Add your provider API keys:
- **Anthropic**: Get your key from [Anthropic Console](https://console.anthropic.com/)
- **OpenRouter**: Get your key from [OpenRouter](https://openrouter.ai/keys)
- **OpenAI**: Get your key from [OpenAI](https://platform.openai.com/api-keys)
- **Anthropic**: Get your key from [Anthropic Console](https://console.anthropic.com/)
- **OpenRouter**: Get your key from [OpenRouter](https://openrouter.ai/settings/keys)

Your API keys are encrypted and stored in the database.

Expand Down Expand Up @@ -149,7 +150,7 @@ services:
# ports:
# - "8080:8080"
environment:
RUST_LOG: warn # 'info' for more logs
RUST_LOG: warn # 'info' or 'debug' for more logs
RS_CHAT_SERVER_ADDRESS: https://mydomain.com # where you're hosting the app
RS_CHAT_DATABASE_URL: postgres://user:pass@mypostgres/mydb # Your PostgreSQL URL
RS_CHAT_REDIS_URL: redis://myredis:6379 # Your Redis URL
Expand Down
Loading
Loading