Skip to content

Commit

Permalink
Update the README with more thorough feature description, better inst…
Browse files Browse the repository at this point in the history
…all instructions, and a note about Alignment
  • Loading branch information
TechNickAI committed Jun 27, 2023
1 parent 82c89ea commit 882b09e
Showing 1 changed file with 46 additions and 34 deletions.
80 changes: 46 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,64 +2,70 @@

## Your AI-powered coding companion

AICodeBot is a coding assistant designed to make your coding life easier. With capabilities to perform code reviews, manage dependencies, and even suggest improvements, think of it as your AI version of a pair programmer.
AICodeBot is a coding assistant designed to make your coding life easier. With capabilities to perform code reviews, manage dependencies, and even suggest improvements, think of it as your AI version of a pair programmer - a team member that accelerates the pace of development and helps you write better code.

⚠️ Status: This project is in its infancy with very limited features. Sometimes it does dumb things.
⚠️ Status: This project is in its infancy with very limited features, but it already improves the software development workflow.

Even with limited functionality, it will still save you time, and you can look at the Features list below to get an idea of where it is going. Give the project a star and follow along while we build out more of the foundation.
⚠️ It uses OpenAI's ChatGPT large language model, which can hallucinate and be confidently wrong. Sometimes it does dumb things, which is why we have you confirm before it does anything permanent.

## Setup and Usage
We're working on it and it's getting better all the time.

### What it's not

`aicodebot` is a tool for developers, not a replacement for them. It's not going to replace your job, but it will make your job easier and more fun. It's not going to take over the world, but it will help us build a better one. See the [Alignment](#alignment) section below for more on that.

It's also not a "build a website for me in 5 minutes" tool that takes a well constructed prompt and builds a scaffold for you. There are [other tools](https://github.com/AntonOsika/gpt-engineer) for that, Instead, it's built to work with existing code bases and help you improve them at the git-commit level. It's designed to multiply the effectiveness of capable engineers.

## Current features - how you can use it

### AI-Assisted Git Commit

`aicodebot commit` will run pre-commit for you to check syntax, and then generate a commit message for you based on the changes you've made. It will also commit the changes for you once everything checks out.

### AI-Assisted Debugging

`aicodebot debug $command` will run the command and capture the log message. It will then try to figure out what's going on from the error message and suggest a fix.

### AI-Assisted Code Review

`aicodebot review` will run a code review on your code and suggest improvements. By default it will look at [un]staged changes, and you can also supply a specific commit hash to review. It also suggests best practices for code improvement.

## Getting Started

[![PyPI version](https://badge.fury.io/py/aicodebot.svg)](https://badge.fury.io/py/aicodebot)

To install the command line interface, run `pip install aicodebot`. You'll also need to set up an OpenAI API key, which you can get for free by visiting your [API key settings page](https://platform.openai.com/account/api-keys").

Follow the steps below to set up AICodeBot on your machine:

`pip install aicodebot`

```bash
> aicodebot --help
Usage: aicodebot [OPTIONS] COMMAND [ARGS]...

Options:
-V, --version Show the version and exit.
-h, --help Show this message and exit.

Commands:
alignment Get a message about Heart-Centered AI Alignment ❤ + 🤖.
commit Generate a git commit message and commit changes after you...
debug Run a command and get debugging advice if it fails.
fun-fact Tell me something interesting about programming or AI.
version Print the version number.
```
Note:
The first time you run it, you'll be prompted to enter your OpenAI API Key, which is required, as we use OpenAI language models for the AI. You can get one for free by visiting your [API key settings page](https://platform.openai.com/account/api-keys").
The first time you run it, you'll be prompted to enter your OpenAI API Key, which is required, as we use OpenAI's large language models for the AI. You can get one for free by visiting your [API key settings page](https://platform.openai.com/account/api-keys").

## Features
## Roadmap of Upcoming Features

### Code Workflow Improvements

- [X] **Assisted Git Commit**: Automatically generate a commit message.
- [X] **Assisted Debugging**: Run a command with aicodebot and it captures the log message and tries to figure out what's going on from the error message. Eventually, it could also suggest fixes for the error and make the changes for you. Try it out with `aicodebot debug $command`
- [ ] **Code Review**: Provides feedback on potential issues in cod, such as style violations, potential bugs, and performance issues. It could also suggest best practices for code improvement. Eventually: FIX the code automatically and notify the team.
- [ ] **Fix the Build**: Check the CI/CD pipeline and fix the build.
- [X] **Code Review**: Provides feedback on potential issues in cod, such as style violations, potential bugs, and performance issues. It could also suggest best practices for code improvement. Eventually: FIX the code automatically and notify the team.
- [ ] **Fix the Build**: Check the CI/CD pipeline, figure out what is broken, and fix the build.
- [ ] **Dependency Management**: Updating dependencies to their latest versions with pull requests that run tests.
- [ ] **Documentation Generation**: Generates comprehensive documentation for code, including docstrings, README files, and wiki pages.
- [ ] **Performance Optimization Suggestions**: Suggests potential performance optimizations for code.
- [ ] **Code Formatting**: Automatically formats code according to a specified style guide.
- [ ] **Error Detection**: Detects errors in code and suggests potential fixes.
- [ ] **Test Generation**: Generates unit tests for code.
- [ ] **Code Generation**: Generates boilerplate code for common tasks.
- [ ] **Test Generation**: Generates unit tests for code, improve test coverage.
- [ ] **Integration with CI/CD pipelines**: Integrates with CI/CD pipelines to automate tasks like code review, testing, and deployment (via GitHub Actions)
- [ ] **Rubber Ducky Chat Bot**: Helps developers think through design issues by providing a conversational interface to discuss and solve problems
- [ ] **Linting**: Checks code for linting errors and automatically fixes them where possible.
- [ ] **Handle GitHub Issues**: Handles issues that you assign to @aicodebot. It could also suggest labels for new issues based on their content.
- [ ] **Rubber Ducky Chat Bot**: Helps developers think through design issues by providing a conversational interface to discuss and solve problems, using data from the current repo.
- [ ] **Linting/Formatting**: Checks code for linting errors and automatically fixes them where possible (via pre-commit)
- [ ] **Handle GitHub Issues**: Handles basic tasks that you assign to @aicodebot

### User Interfaces

- [X] **Command-line installable via pip**: aicodebot can be installed as a Python package using `pip install aicodebot`
- [ ] **Chat**: CLI chat interface that knows the context of your codebase and can answer questions about it. No more going back and forth between ChatGPT and command-line.
- [X] **Command-line, installable via pip**: aicodebot can be installed as a Python package using `pip install aicodebot`
- [ ] **Callable as a GitHub action**: Can be called as a GitHub action to perform tasks on GitHub repositories.
- [ ] **Chat**: CLI chat interface that knows the context of your codebase and can answer questions about it. No more going back and forth between ChatGPT and command-line.
- [ ] **Slack Bot**: Interacts with aicodebot via slack, sends notifications, performs tasks, and provides real-time assistance to developers.
- [ ] **Bug Report service integrations**: Listen for bug reports from Sentry, Honeybadger, and other bug reporting tools and automatically create issues, assign them to developers, and notify them via Slack. Eventually: FIX the bug automatically and notify the team.

Expand Down Expand Up @@ -101,10 +107,16 @@ The first time you run it, you'll be prompted to enter your OpenAI API Key, whic
#### Infrastructure

[![Python 3.11](https://img.shields.io/badge/python-3.11-blue.svg)](https://www.python.org/downloads/release/python-3110/)
[![Open AI](https://img.shields.io/badge/OpenAI-412991.svg?logo=OpenAI&logoColor=white)](https://openai.com)
[![LangChain](https://img.shields.io/badge/LangChain.svg?logoColor=white)](https://github.com/hwchase17/langchain)

## Alignment ❤️ + 🤖

Technology itself is amoral, it just imbues the values of the engineers who create it. We believe that AI should be built in a way that aligns with humanity, and we're building aicodebot to help us do just that. We're building from a heart-centered space, and contributing to the healthy intersection of AI and humanity.

## Contributing

### Dev Environment
We'd love your help! If you're interested in contributing, here's how to get started.

1. Clone the repository

Expand Down

0 comments on commit 882b09e

Please sign in to comment.