Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
🦜💬 Web app for interacting with any LangGraph agent (PY & TS) via a chat interface.
| Date | Stars |
|---|---|
| 2026-08-05 | 3037 |
| 2026-08-06 | 3039 |
| 2026-08-07 | 3040 |
| 2026-08-08 | 3041 |
| 2026-08-09 | 3041 |
| 2026-08-10 | 3043 |
| 2026-08-11 | 3046 |
| 2026-08-12 | 3046 |
| 2026-08-13 | 3051 |
| 2026-08-14 | 3056 |
| 2026-08-15 | 3056 |
| 2026-08-16 | 3059 |
| 2026-08-17 | 3064 |
| 2026-08-18 | 3069 |
| 2026-08-19 | 3071 |
| 2026-08-20 | 3072 |
| 2026-08-21 | 3074 |
| 2026-08-22 | 3078 |
| 2026-08-23 | 3080 |
| 2026-08-24 | 3085 |
| 2026-08-25 | 3091 |
| 2026-08-26 | 3094 |
| 2026-08-27 | 3098 |
| 2026-08-28 | 3102 |
| 2026-08-29 | 3106 |
| 2026-08-30 | 3108 |
| 2026-08-31 | 3113 |
| 2026-09-01 | 3114 |
| 2026-09-02 | 3117 |
| 2026-09-03 | 3123 |
| 2026-09-04 | 3127 |
| 2026-09-05 | 3129 |
| 2026-09-06 | 3130 |
| 2026-09-08 | 3134 |
| 2026-09-09 | 3137 |
| 2026-09-10 | 3139 |
| 2026-09-11 | 3141 |
| 2026-09-12 | 3144 |
| 2026-09-13 | 3145 |
| 2026-09-14 | 3150 |
| 2026-09-15 | 3154 |
| 2026-09-16 | 3161 |
| 2026-09-18 | 3165 |
| 2026-09-19 | 3169 |
| 2026-09-20 | 3171 |
| 2026-09-21 | 3172 |
| 2026-09-22 | 3172 |
| 2026-09-23 | 3174 |
| 2026-09-24 | 3177 |
| 2026-09-25 | 3179 |
| 2026-09-26 | 3182 |
| 2026-09-27 | 3185 |
| 2026-09-28 | 3186 |
| 2026-09-30 | 3188 |
| 2026-10-01 | 3190 |
| 2026-10-02 | 3192 |
| 2026-10-03 | 3195 |
| 2026-10-04 | 3197 |
| 2026-10-05 | 3199 |
| 2026-10-06 | 3201 |
| 2026-10-08 | 3203 |
| 2026-10-09 | 3207 |
| 2026-10-10 | 3208 |
| 2026-10-11 | 3210 |
| 2026-10-12 | 3214 |
| 2026-10-13 | 3215 |
| 2026-10-14 | 3217 |
| 2026-10-15 | 3218 |
| 2026-10-16 | 3222 |
| 2026-10-17 | 3225 |
| 2026-10-18 | 3228 |
| 2026-10-19 | 3231 |
| 2026-10-20 | 3234 |
| 2026-10-21 | 3235 |
| 2026-10-22 | 3237 |
| 2026-10-23 | 3238 |
| 2026-10-24 | 3237 |
| 2026-10-25 | 3239 |
| 2026-10-26 | 3240 |
| 2026-10-27 | 3242 |
| 2026-10-28 | 3243 |
| 2026-10-29 | 3245 |
| 2026-10-30 | 3247 |
| 2026-10-31 | 3249 |
| 2026-11-01 | 3252 |
| 2026-11-02 | 3254 |
| 2026-11-03 | 3255 |
| 2026-11-04 | 3254 |
Today
-1 stars today
This week
+11 stars this week
This month
+55 stars this month
Momentum
11.0
growth rate 0.34%/day
# Agent Chat UI
Agent Chat UI is a Next.js application which enables chatting with any LangGraph server with a `messages` key through a chat interface.
> [!NOTE]
> 🎥 Watch the video setup guide [here](https://youtu.be/lInrwVnZ83o).
## Setup
> [!TIP]
> Don't want to run the app locally? Use the deployed site here: [agentchat.vercel.app](https://agentchat.vercel.app)!
First, clone the repository, or run the [`npx` command](https://www.npmjs.com/package/create-agent-chat-app):
```bash
npx create-agent-chat-app
```
or
```bash
git clone https://github.com/langchain-ai/agent-chat-ui.git
cd agent-chat-ui
```
Install dependencies:
```bash
pnpm install
```
Run the app:
```bash
pnpm dev
```
The app will be available at `http://localhost:3000`.
## Usage
Once the app is running (or if using the deployed site), you'll be prompted to enter:
- **Deployment URL**: The URL of the LangGraph server you want to chat with. This can be a production or development URL.
- **Assistant/Graph ID**: The name of the graph, or ID of the assistant to use when fetching, and submitting runs via the chat interface.
- **LangSmith API Key**: (only required for connecting to deployed LangGraph servers) Your LangSmith API key to use when authenticating requests sent to LangGraph servers.
- **Built with Agent Builder**: Toggle this on for Agent Builder deployments. This automatically sets the auth scheme to `langsmith-api-key`.
After entering these values, click `Continue`. You'll then be redirected to a chat interface where you can start chatting with your LangGraph server.
## Environment Variables
You can bypass the initial setup form by setting the following environment variables:
```bash
NEXT_PUBLIC_API_URL=http://localhost:2024
NEXT_PUBLIC_ASSISTANT_ID=agent
NEXT_PUBLIC_AUTH_SCHEME=
```
> [!NOTE]
> If you are connecting to a LangSmith Agent Builder deployment, set `NEXT_PUBLIC_AUTH_SCHEME=langsmith-api-key`.
> [!TIP]
> If you want to connect to a production LangGraph server, read the [Going to Production](#going-to-production) section.
To use these variables:
1. Copy the `.env.example` file to a new file named `.env`
2. Fill in the values in the `.env` file
3. Restart the application
When these environment variables are set, the application will use them instead of showing the setup form.
## Hiding Messages in the Chat
You can control the visibility of messages within the Agent Chat UI in two main ways:
**1. Prevent Live Streaming:**
To stop messages from being displayed _as they stream_ from an LLM call, add the `langsmith:nostream` tag to the chat model's configuration. The UI normally uses `on_chat_model_stream` events to render streaming messages; this tag prevents those events from being emitted for the tagged model.
_Python Example:_
```python
from langchain_anthropic import ChatAnthropic
# Add tags via the .with_config method
model = ChatAnthropic().with_config(
config={"tags": ["langsmith:nostream"]}
)
```
_TypeScript Example:_
```typescript
import { ChatAnthropic } from "@langchain/anthropic";
const model = new ChatAnthropic()
// Add tags via the .withConfig method
.withConfig({ tags: ["langsmith:nostream"] });
```
**Note:** Even if streaming is hidden this way, the message will still appear after the LLM call completes if it's saved to the graph's state without further modification.
**2. Hide Messages Permanently:**
To ensure a message is _never_ displayed in the chat UI (neither during streaming nor after being saved to state), prefix its `id` field with `do-not-render-` _before_ adding it to the graph's state, along with adding the `langsmith:do-not-render` tag to the chat model's configuration. The UI explicitly filters out any message whose `id` starts with this prefix.
_Python Example:_
```python
result = model.invoke([messages])
# Prefix the ID before saving to state
result.id = f"do-not-render-{result.id}"
return {"messages": [result]}
```
_TypeScript Example:_
```typescript
const result = awExcerpt of 11,145 characters
Read on GitHubBrace Sproul · @langchain-ai
212
David Duong · Czech Republic
78
Dylan Boudro · Azerbaijan
41
29
John Kennedy · @langchain-ai
7
3
choi sung keun · FreeLance · South Korea
2
2
Sanjeed · Oman
1
Sam Crowder · Harvard · United States
1
1
1
1
小小小下 · nil · China
1
SUBHADIP JANA · Docunexus · India
1
Victor Moreira
1
Would you bet a product on this? Bounded 0–100 and slow moving.
matched fp:9e499f355c23cbb1, topic:llm
matched fp:9e499f355c23cbb1, topic:langgraph
matched fp:9e499f355c23cbb1, desc:chat interface, name:chat ui