Skip to content
 
 

Repository files navigation

AIChatNG: All-in-one LLM CLI Tool (with response editing)

AIChat is an all-in-one LLM CLI tool featuring Shell Assistant, CMD & REPL Mode, RAG, AI Tools & Agents, and More.

This is a fork (why?) of aichat with the following improvements:

  • Edit last the response from LLMs using edit last command. Similar to oobabooga and open-webui.
  • Auto complete file system paths after commands that accept paths like .file ..
  • Ollama: reimplemented dedicated Ollama model type with full support for Ollama API instead of the non-complete OpenAI compatibility version.
  • Disable the terminal spinner animation which is CPU intensive. see repl_spinner option in config.example.yaml.

Install

Package Managers

  • Rust Developers: cargo install aichat-ng
  • Arch Linux: Available on AUR repository

Pre-built Binaries

Download pre-built binaries for macOS, Linux, and Windows from GitHub Releases, extract them, and add the aichat binary to your $PATH.

From Source

  • Rust Developers: clone this repo and run cargo install --path .

Configuration

  • The default config directory is ~/.config/aichat_ng or the equivalent base config dir for your platform.

  • You can keep using the original aichat config by creating a symlink ln -s ~/.config/aichat ~/.config/aichat_ng

Features

Multi-Providers

Integrate seamlessly with over 20 leading LLM providers through a unified interface. Supported providers include OpenAI, Claude, Gemini (Google AI Studio), Ollama, Groq, Azure-OpenAI, VertexAI, Bedrock, Github Models, Mistral, Deepseek, AI21, XAI Grok, Cohere, Perplexity, Cloudflare, OpenRouter, Ernie, Qianwen, Moonshot, ZhipuAI, Lingyiwanwu, MiniMax, Deepinfra, VoyageAI, any OpenAI-Compatible API provider.

CMD Mode

Explore powerful command-line functionalities with AIChat's CMD mode.

aichat-cmd

REPL Mode

Experience an interactive Chat-REPL with features like tab autocompletion, multi-line input support, history search, configurable keybindings, and custom REPL prompts.

aichat-repl

Shell Assistant

Elevate your command-line efficiency. Describe your tasks in natural language, and let AIChat transform them into precise shell commands. AIChat intelligently adjusts to your OS and shell environment.

aichat-execute

Multi-Form Input

Accept diverse input forms such as stdin, local files and directories, and remote URLs, allowing flexibility in data handling.

Input CMD REPL
CMD aichat hello
STDIN cat data.txt | aichat
Last Reply .file %%
Local files aichat -f image.png -f data.txt .file image.png data.txt
Local directories aichat -f dir/ .file dir/
Remote URLs aichat -f https://example.com .file https://example.com
External commands aichat -f '`git diff`' .file `git diff`
Combine Inputs aichat -f dir/ -f data.txt explain .file dir/ data.txt -- explain
  • The autocomplete menu will appear for local file system paths as you type

Role

Customize roles to tailor LLM behavior, enhancing interaction efficiency and boosting productivity.

aichat-role

The role consists of a prompt and model configuration.

Session

Maintain context-aware conversations through sessions, ensuring continuity in interactions.

aichat-session

The left side uses a session, while the right side does not use a session.

Macro

Streamline repetitive tasks by combining a series of REPL commands into a custom macro.

aichat-macro

RAG

Integrate external documents into your LLM conversations for more accurate and contextually relevant responses.

aichat-rag

Function Calling

Function calling supercharges LLMs by connecting them to external tools and data sources. This unlocks a world of possibilities, enabling LLMs to go beyond their core capabilities and tackle a wider range of tasks.

We have created a new repository https://github.com/sigoden/llm-functions to help you make the most of this feature.

AI Tools

Integrate external tools to automate tasks, retrieve information, and perform actions directly within your workflow.

aichat-tool

AI Agents (CLI version of OpenAI GPTs)

AI Agent = Instructions (Prompt) + Tools (Function Callings) + Documents (RAG).

aichat-agent

Local Server Capabilities

AIChat includes a lightweight built-in HTTP server for easy deployment.

$ aichat --serve
Chat Completions API: http://127.0.0.1:8000/v1/chat/completions
Embeddings API:       http://127.0.0.1:8000/v1/embeddings
Rerank API:           http://127.0.0.1:8000/v1/rerank
LLM Playground:       http://127.0.0.1:8000/playground
LLM Arena:            http://127.0.0.1:8000/arena?num=2

Proxy LLM APIs

The LLM Arena is a web-based platform where you can compare different LLMs side-by-side.

Test with curl:

curl -X POST -H "Content-Type: application/json" -d '{
  "model":"claude:claude-3-5-sonnet-20240620",
  "messages":[{"role":"user","content":"hello"}], 
  "stream":true
}' http://127.0.0.1:8000/v1/chat/completions

LLM Playground

A web application to interact with supported LLMs directly from your browser.

aichat-llm-playground

LLM Arena

A web platform to compare different LLMs side-by-side.

aichat-llm-arena

Custom Themes

AIChat supports custom dark and light themes, which highlight response text and code blocks.

aichat-themes

Documentation

Why Fork

Every time I suggested a modification or submitted a PR to the original author, it was declined or turned down with minimal justification. In my opinion, open source thrives on collaboration, so this fork not only incorporates those enhancements but welcomes any reasonable proposals that don't compromise the codebase. Full credit remains due to the original author's contributions, yet the derived work within this repository is exclusively licensed under AGPLv3.

License

This derivative work is licensed under AGPLv3.

Copyright blob42. Credit to aichat developers.

See the LICENSE file for more details.

About

All-in-one AI-Powered CLI Chat & Copilot that integrates 20+ AI platforms, including OpenAI, Azure-OpenAI, Gemini, Claude, Mistral, Cohere, VertexAI, Bedrock, Ollama, Ernie, Qianwen, Deepseek...

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages