A modern web-based chat interface for AWS Bedrock foundation models. Chat with Claude, Llama, Mistral, Nova, and many other AI models through a clean, responsive UI.
- Multi-model support - Access 50+ foundation models from Anthropic, Amazon, Meta, Mistral, Cohere, AI21, DeepSeek, Google, OpenAI, Qwen, NVIDIA, and more
- Streaming responses - Real-time token streaming for faster interactions
- Conversation management - Create, rename, and delete conversations with persistent history
- Model discovery - Automatically fetches available models from your Bedrock account
- Markdown support - Rich formatting with code syntax highlighting
- Secure - Credentials stay in your browser, never sent to any server except AWS
- Node.js 18+
- An AWS account with Bedrock access
- IAM credentials with appropriate permissions
-
Clone the repository
git clone https://github.com/yourusername/bedrock-chat.git cd bedrock-chat -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173 -
Enter your AWS credentials
- Access Key ID
- Secret Access Key
- Region (e.g.,
us-east-1) - Session Token (optional, for temporary credentials)
-
Start chatting! Select a model and begin your conversation.
Your IAM user needs the following permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": [
"bedrock:ListFoundationModels",
"bedrock:ListInferenceProfiles"
],
"Resource": "*"
}
]
}Before using any model, you must request access in the AWS Bedrock console:
- Go to AWS Bedrock Console
- Navigate to Model access in the left sidebar
- Click Modify model access
- Select the models you want to use
- Save your changes
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ React Client │────▶│ Express Server │────▶│ AWS Bedrock │
│ (Port 5173) │ │ (Port 3001) │ │ API │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- Frontend: React + TypeScript + Vite
- Backend: Express.js proxy server
- AWS SDK:
@aws-sdk/client-bedrockand@aws-sdk/client-bedrock-runtime
| Command | Description |
|---|---|
npm run dev |
Start both client and server in development mode |
npm run dev:client |
Start only the Vite dev server |
npm run dev:server |
Start only the Express server with hot reload |
npm run build |
Build the client for production |
npm run preview |
Preview the production build |
The app supports all Bedrock foundation models including:
- Anthropic: Claude 3 Haiku, Claude 3.5 Haiku, Claude Sonnet 4/4.5/4.6, Claude Opus 4.1/4.5/4.6
- Amazon: Nova Micro/Lite/Pro/Premier, Nova 2 Lite, Titan Text
- Meta: Llama 3, 3.1, 3.2, 3.3, Llama 4 Scout/Maverick
- Mistral: Mistral 7B, Mixtral 8x7B, Mistral Large, Ministral, Magistral, Devstral, Pixtral
- Cohere: Command R, Command R+
- AI21 Labs: Jamba 1.5 Large/Mini
- DeepSeek: DeepSeek-R1, DeepSeek V3.x
- Google: Gemma 3 variants
- OpenAI: GPT OSS models
- Qwen: Qwen3 variants
- NVIDIA: Nemotron models
- Moonshot: Kimi K2 variants
- Writer: Palmyra X4/X5
- MiniMax: MiniMax M2/M2.1
- Z.AI: GLM 4.7 variants
- Credentials are never stored on any server - They remain in your browser's localStorage (if you enable "Remember credentials") or in memory only
- No backend credential storage - The Express server only proxies requests to AWS
- No telemetry or analytics - Your conversations stay private
- Open source - Audit the code yourself
- React 18 - UI framework
- TypeScript - Type safety
- Vite - Build tool
- Express - Backend server
- AWS SDK for JavaScript v3 - AWS integration
- react-markdown - Markdown rendering
- highlight.js - Code syntax highlighting
MIT License - feel free to use this project for any purpose.
Contributions are welcome! Please feel free to submit a Pull Request.
Built with ❤️ using AWS Bedrock and React.
