Skip to main content

A local read-only AI coding assistant

Project description

FileChat

FileChat is an AI assistant designed to help users understand and improve their local projects. It allows you to chat about files in your local folder while maintaining full control over your code.

Here is a short video:

https://github.com/user-attachments/assets/dd3c6617-b141-47ab-926e-c62abcc7b4a6

Features

  • Project Indexing: Creates a searchable index of your project files
  • Contextual Chat: Ask questions about your project with AI that understands your codebase
  • Real-time Updates: Automatically detects and indexes file changes
  • Configurable: Customize which files to index and how to process them
  • Chat History: ChatGPT-like chat history for each directory

Installation

Prerequisites

  • Python 3.12 or higher
  • A Mistral AI API key stored in the MISTRAL_API_KEY environment variable
  • On Windows, you need Visual C++ Redistributable. It's very likely you have it already installed on your machine.

Option 1: Install from PyPI

You can use any Package management tool you like. Here is an example for pip:

pip install filechat

And here is an example of installing FileChat as a UV tool:

uv tool install filechat

On Linux, you should also specify the hardware accelerator as an optional dependency. We support cpu, xpu (Intel Arc), and cuda. If you don't specify the accelerator, you'll get a version with CUDA support, which might be unnecessarily large. Here is an example of installing FileChat with xpu support:

PIP:

pip install filechat[xpu]

UV Tool:

uv tool install filechat[xpu]

Option 2: Clone the repository and use UV

  1. Clone the repository:
git clone https://github.com/msvana/filechat
cd filechat
  1. Install dependencies using uv:
uv sync
  1. (Optional) Install GPU support if available:
# CUDA (NVIDIA)
uv sync --extra cuda

# XPU (Intel Arc)
uv sync --extra xpu

Usage

filechat /path/to/your/project

Configuration

On the first run, FileChat creates a configuration file at ~/.config/filechat.json. Feel free to change it as you need. Here is a full example:

{
    "max_file_size_kb": 30,
    "ignored_dirs": [".git", "__pycache__", ".venv", ".pytest_cache", "node_modules"],
    "allowed_suffixes": [".txt", ".json", ".py", ".toml", ".html", ".md", ".js", ".ts", ".vue"],
    "index_store_path": "/home/milos/.cache/filechat",
    "model": "mistral-medium-2508",
    "api_key": "[MISTRAL_API_KEY]"
}

Roadmap

Short term (weeks)

  • Add support for other models
  • Add tools for browsing the filesystem
  • Support CUDA on Windows

Long term (months)

  • Improve file retrieval (for example, via Graph RAG)
  • Reimplement file indexing and querying in a compiled language
  • Support important binary file types (images, PDFs)
  • Add web search tools

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

filechat-0.2.1.tar.gz (53.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

filechat-0.2.1-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file filechat-0.2.1.tar.gz.

File metadata

  • Download URL: filechat-0.2.1.tar.gz
  • Upload date:
  • Size: 53.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.11

File hashes

Hashes for filechat-0.2.1.tar.gz
Algorithm Hash digest
SHA256 6bba41dd15c0d9fa72d0de0d9438aa85cc1fd47a3064a91a45fa8fe22d6176af
MD5 75f3f3d532f8b03d730d493dd2cce7e6
BLAKE2b-256 d0a4a02bee535421d44f106117052a6f0c0fd1ef613c72422793ef352806b5c0

See more details on using hashes here.

File details

Details for the file filechat-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: filechat-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 13.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.11

File hashes

Hashes for filechat-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9f4391b49a7b12a184c745d15ede1280a017e83417efe8c43d30f883e4c01990
MD5 11cfe24b8ee381c7b861830ea1fba896
BLAKE2b-256 304893ae7f8f8ed1f79ba9498ec8cca0a7d67d1dc8cb236df4111681dd005347

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page