This is a LLM chat client that stores the conversations as files/folders in a git-friendly format.
Other features:
- Allows switching between different LLM providers, including locally hosted
- Features MCP support
- Create a local environment file from the example:
cp src/chat/.env.example src/chat/.env-
Update the values in
src/chat/.envas required for your environment. -
Start the development server:
npm run dev- Open
http://localhost:3000
Execute:
npm run testYou can run E2E tests using one of the following approaches.
This approach requires running the mock LLM API and the application server manually.
- Start the mock LLM API (keep it running):
npm run start:mock-openai-api- Start the application server (keep it running):
npm run start:e2e- Run the E2E tests:
npm run test:e2eIf you are developing inside a devcontainer, ensure that the Docker-in-Docker feature is enabled.
With this approach, the mock LLM API runs as a private service alongside the application server, so you do not need to start it manually.
- Start the containerized environment:
npm run start:e2e:container- Run the E2E tests:
npm run test:e2eE2E tests use an in-memory store, so they can run against the development server without interfering with your local development session.
Important difference in LLM configuration:
- When using
start:e2eorstart:e2e:container, the application uses a mock LLM API. - When using the
devserver, the application uses the LLM configuration defined in your.envfile. This may cause some tests to fail depending on your configuration.
- Start the development server:
npm run dev- Run the E2E tests:
npm run test:e2eThe ./notes directory contains prompts used during the research and development of the application.
To start the app configured to store prompts in the ./notes directory:
cd deploy
docker compose up --buildThe application will be available at:
http://localhost:4000