Skip to main content

Twitter Follow Discord Follow Stable Version License

🧙‍♂️ Mentat ⚡

It is by will alone I set my mind in motion

The Mentat Mantra

The Mentats of Dune combine human creativity with computer-like processing - and now you can too.


Mentat is the AI tool that assists you with any coding task, right from your command line.

Unlike Copilot, Mentat coordinates edits across multiple locations and files. And unlike ChatGPT, Mentat already has the context of your project - no copy and pasting required!

Want help understanding a new codebase? Need to add a new feature? Refactor existing code? Mentat can do it!

🍿 Example Videos (🔊 on!)

https://github.com/AbanteAI/mentat/assets/128252497/35b027a9-d639-452c-a53c-ef019a645719

See more videos on Twitter or YouTube:

⚙️ Setup

Installation and Setup Demonstration Video

Install

Before installing, it's suggested that you create a virtual environment to install it in:

# Python 3.10 or higher is required
python3 -m venv .venv
source .venv/bin/activate

Note that you'll have to have activated the virtual environment to run mentat if you install it there.

There are then 3 install methods. The first two will just let you run it:

  • PyPI: python -m pip install mentat
  • Github: python -m pip install git+https://github.com/AbanteAI/mentat.git

The third option is useful if you'd also like to modify Mentat's code, as well as run it:

git clone https://github.com/AbanteAI/mentat.git
cd mentat

# install with pip in editable mode:
pip install -e .

Add your OpenAI API Key

You'll need to have API access to GPT-4 to run Mentat. There are a few options to provide Mentat with your OpenAI API key:

  1. Create a .env file with the line OPENAI_API_KEY=<your-api-key> in the directory you plan to run mentat in or in ~/.mentat/.env
  2. Run export OPENAI_API_KEY=<your key here> prior to running Mentat
  3. Place the previous command in your .bashrc or .zshrc to export your key on every terminal startup

Configuration

For custom configuration options see configuration.md

Install universal-ctags (required to use auto-context)

Installing universal ctags is helpful if you want to use the auto-context system to have Mentat find relevant parts of files for you.

See the official instructions for installing univeresal ctags for your specific operating system, however you may be able to install a compatible version with one of the following commands:

OSX

brew update && brew install universal-ctags

Ubuntu

sudo apt update && sudo apt install universal-ctags

Windows

choco install universal-ctags

🚀 Usage

Run Mentat from within your project directory. Mentat uses git, so if your project doesn't already have git set up, run git init. Then you can run Mentat with:

mentat <paths to files or directories>

List the files you would like Mentat to read and edit as arguments. Mentat will add each of them to context, so be careful not to exceed the GPT-4 token context limit. To add multiple files at once, you can also provide directories as arguments. When a directory is provided, Mentat will add all the contained files, except for ones ignored in your .gitignore. In addition to files and directories, you can use glob patterns to add multiple files at once.

Options

Exclude Files

Exclude given paths, directories, or glob patterns from Mentat's context. Takes precedence over included file paths.

mentat path/to/directory --exclude exclude_me.py dir1/dir2 **/*.ts

Auto Context

The Auto Context feature in Mentat uses retrieval-augmented-generation (RAG) to select relevant snippets from your codebase to include with the user query. To enable Auto Context, use the --auto-context or -a flag when running Mentat:

mentat --auto-context

Auto-context will add code snippets in order of relevance up to the maximum (8000 tokens by default). Adjust the maximum number of tokens added by auto-context by using the --auto-tokens flag:

mentat -a --auto-tokens 8000

👩‍💻 Roadmap and Contributing

We welcome contributions! To coordinate, make sure to join the Discord server: Discord Follow

The goal for Mentat is to become the best way to write code. Some big improvements coming up are:

  • improved user interface and options (VSCode and other editor integrations, etc)
  • use with LLMs other than GPT-4
  • seamlessly work with codebases much larger than LLM context limits, without requiring users to filter files manually
  • improved edit quality

If this is something you'd like to work on, jump right in! And if you want to join the team to work on this full time, message @bio_bootloader on twitter.

To find something specific to work on, take a look at open issues and/or check this Github Project: Mentat Development

Metadata

Release files for mentat 1.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mentat 1.0.5
File Size Uploaded
mentat-1.0.5.tar.gz 88.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mentat 1.0.5
File Interpreter ABI Platform
mentat-1.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 204.7 kB

Release files / mentat-1.0.5.tar.gz

Download URL mentat-1.0.5.tar.gz
Size 88.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ddda50d99b6272bb7532bf96b7c7d13266d7963379954dfe347e3166243ae2c1
BLAKE2b-256 checksum
How to use checksums
6629667148a7d39ffdaff4f9e68cd8e3b4d7a87f602f36f3b497c52251a55287
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.13

Release files / mentat-1.0.5-py3-none-any.whl

Download URL mentat-1.0.5-py3-none-any.whl
Size 116.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b54b63a43c894f7b0cc32626a8646208378b8644479ced3e7434f370e5de0188
BLAKE2b-256 checksum
How to use checksums
cbf27ea6118a422f8d205e09a837cef244454ee3d6346407c35a2a3f34b26ec7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.10.13

Release history Release notifications | RSS feed

1.0.18

2 release files

1.0.17

2 release files

1.0.15

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

This release

1.0.5 This release

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.17

2 release files

0.1.16

2 release files

0.1.14

2 release files

0.1.13

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page