Skip to main content

Aye Chat: Terminal-first AI Code Generator

Project description

Pylint CodeQL Dependabot Updates

Aye Chat - AI-Powered Terminal Code Generator

Aye Chat is a terminal-first AI coding assistant that helps you generate, modify, and manage code through natural language prompts. It provides both one-shot generation and interactive chat capabilities with built-in snapshot management for safe code modifications.

Key Features

Terminal-First Design

Unlike GUI-based tools, Aye Chat is built for developers who live in their terminals. All interactions happen through command-line interface with intuitive commands.

Intelligent File Detection

  • Automatically detects relevant source file types in your project
  • Respects .gitignore and .ayeignore patterns to exclude irrelevant files
  • Supports multiple comma-separated file masks (e.g., "*.py,*.js")
  • Skips binary and hidden files for efficient processing

Safe Code Modification with Snapshots

  • Creates timestamped snapshots of your files before any AI-generated changes
  • "Latest" snapshot tracking for quick restores
  • Interactive diff viewing to compare changes
  • History management with pruning capabilities

Interactive Chat Experience

  • REPL-based chat interface with command completion
  • Supports both AI prompts and shell commands in the same session
  • Persistent chat sessions that remember context
  • Built-in command help system

Plugin Architecture

  • Extensible plugin system for additional functionality
  • Automatic plugin downloading based on user's license tier
  • Modular design allowing easy addition of new features

Configuration Management

  • Persistent configuration storage
  • Support for multiple settings including file masks

Quick Start

  1. Install the tool:

    pip install ayechat
    
  2. Authenticate:

    aye auth login
    

    Visit https://ayechat.ai to obtain your personal access token.

  3. Start Interactive Chat:

    aye chat
    

Usage Examples

Authentication

aye auth login    # Configure your token
aye auth logout   # Remove stored credentials

Interactive Chat

aye chat                          # Start chat with auto-detected files
aye chat --root ./src             # Specify project root directory
aye chat --file-mask "*.js"       # Work with JavaScript files
aye chat --file-mask "*.py,*.js"  # Work with multiple file types

In chat mode, you can use these built-in commands:

  • help - Show available commands
  • exit/quit - End chat session
  • new - Start a new chat
  • history - Show snapshot history
  • restore - Restore files from snapshot
  • diff [file] [snapshot] - Show differences in files
  • keep [N] - Keep only N most recent snapshots

Any other command is treated as a shell command or AI prompt depending on context. Note that for the shell commands, you do not need to add '/' or any other special indicators: just type your command (e.g., "ls -la"). Some shell commands cannot be executed and will return an error or fail silently: these include those that alter terminal view (e.g., text editors) or attempt to switch shell context (e.g., "sudo su - ").

Except for Aye Chat own commands, which are matched and executed first, for each prompt, the tool attempts to find a shell command for the first token, and if successfull - execute it, if not - the prompt is treated as a message to AI.

Snapshot Management

aye snap history              # List all snapshots
aye snap history src/main.py  # List snapshots for specific file
aye snap restore              # Restore latest snapshot
aye snap restore 001          # Restore specific snapshot
aye snap restore 001 file.py  # Restore specific file from snapshot
aye snap keep -n 5            # Keep only 5 most recent snapshots
aye snap cleanup -d 7         # Delete snapshots older than 7 days

Configuration

aye config list                  # Show all settings
aye config get file_mask         # Get current file mask
aye config set file_mask "*.py"  # Set file mask
aye config delete file_mask      # Remove file mask setting

Running using Visual Code

Example of launch.json you can use. Store this file under .vscode/

Note: Python 3.14.0, Visual Code and debugpy currently don't work.

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python: Module",
            "type": "debugpy",
            "request": "launch",
            "module": "aye",
            "console": "integratedTerminal",
            "cwd": "${workspaceFolder}/src/",
            "justMyCode": true,
            "args": [  "--help" ],
         }
    ]
}

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

ayechat-0.12.0.tar.gz (33.4 kB view details)

Uploaded Source

Built Distribution

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

ayechat-0.12.0-py3-none-any.whl (32.9 kB view details)

Uploaded Python 3

File details

Details for the file ayechat-0.12.0.tar.gz.

File metadata

  • Download URL: ayechat-0.12.0.tar.gz
  • Upload date:
  • Size: 33.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ayechat-0.12.0.tar.gz
Algorithm Hash digest
SHA256 7b5d8df0361dff93dba5bef204eb08eab8cfa6a58eaae52c3f46ac0937e3686a
MD5 952b6dd10f67f4ba5a91132fb0390c14
BLAKE2b-256 b8e5e1a1701e408c42c51d331100aed5ec54f87ce0f687a08e9e9398ff429955

See more details on using hashes here.

Provenance

The following attestation bundles were made for ayechat-0.12.0.tar.gz:

Publisher: python-publish.yml on acrotron/aye-chat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ayechat-0.12.0-py3-none-any.whl.

File metadata

  • Download URL: ayechat-0.12.0-py3-none-any.whl
  • Upload date:
  • Size: 32.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ayechat-0.12.0-py3-none-any.whl
Algorithm Hash digest
SHA256 863b6d20309f605c5dba1fcd3027e2ca4788e630e5b2c74168a758b93a5815b5
MD5 0d3e2317fc60a5ab81f7f2b02adfd0c1
BLAKE2b-256 86dc6d03f5f9898685fa9f086d3f86a89522681f1b70d6207649f6c02ebb3b11

See more details on using hashes here.

Provenance

The following attestation bundles were made for ayechat-0.12.0-py3-none-any.whl:

Publisher: python-publish.yml on acrotron/aye-chat

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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