AI-assisted software development tool for streamlining development process
Project description
Pluscoder
PlusCoder is an AI-assisted software development tool designed to enhance and streamline the software development process. It leverages multiple specialized AI agents to assist with various aspects of development, from planning and implementation to validation and project management.
Key Features
- Automated repository analysis and documentation
- Automated context reading and file editing by agents
- Multi-agent task-based workflows executions for complex requirements
- User approvals for key points in the workflow or fully automated runs
- Auto-commit on editions
- Cost and token tracking for LLM interactions
- Flexible configuration system supporting command-line arguments, environment variables, and default values
- Support for multiple LLM models (LLMLite, OpenAI, AWS Bedrock, Anthropic)
- Enhanced user interaction with rich console output and auto-completion
- Real-time task execution progress display
- File downloading and context addition during agent interactions
- Custom agent creation for specialized tasks
Requirements
uvpython package manager- Credentials for AWS Bedrock, Anthropic, OpenAI, VertexAI or other providers through LLMLite
Usage:
First, ensure you have set your PlusCoder API token (installer configures it automatically):
export PLUSCODER_TOKEN=<your_token_here>
Docker:
Note: Image pasting (ctrl+v) is not supported through Docker
# Pass required tokens through environment
docker run --env PLUSCODER_TOKEN --env ANTHROPIC_API_KEY -v $(pwd):/app -it --rm registry.gitlab.com/codematos/pluscoder:latest --auto_commits f
Python:
# Install pluscoder
pip install --no-cache git+https://gitlab.com/codematos/pluscoder.git
# Run with PLUSCODER_TOKEN set in environment
pluscoder --auto_commits f --model claude-3-5-sonnet-20240620
Note: Pluscoder requires a git repository
Note: First time you run pluscoder in a repo you'll be prompted to initialize the repository through an LLM code base analysis.
CLI Interaction
Pluscoder provides an enhanced command-line interface for efficient interaction:
- Input History: Use the up arrow key to recall and reuse previous inputs.
- Multiline Input: Press Ctrl+Return to start a new line within the input field, allowing for complex multiline commands or descriptions.
- Input Clearing: Use Ctrl+C to quickly clear the current text in the input field.
- File Autocomplete: Type any file name (at any directory level) to see suggestions and autocomplete file paths.
- Paste Support: Easily paste multiline text directly into the input field.
- Quick Confirmation: Use 'y' or 'Y' to quickly confirm prompts or actions.
- Image Uploading: Write
img::<url>orimg::<local_path>to send these files to multi-modal LLMs ad part of the prompt. - Image Pasting: Ctrl+V to paste images directly into the input field. The system will automatically handle clipboard images, save them to temporary files, and convert file paths to base64-encoded strings for processing.
These features are designed to streamline your interaction with Pluscoder, making it easier to navigate, input commands, and manage your development workflow.
Orchestrated Task based executions
- Start Pluscoder in your terminal and choose the
Orchestratoragent (option 1). - Ask for a plan with your requirements, review it and give feedback until satisfied.
- Tell the orchestrator to
delegatethe plan and approve by typingywhen prompted. - The Orchestrator will delegate and execute tasks using specialized agents.
- Monitor real-time progress updates and type
yto continue to the next task after each completion. - Review the summary of completed work and changes to project files.
- Provide new requirements or iterate for complex projects as needed.
Note: Pluscoder can modify project files; always review changes to ensure alignment with your goals.
Note: Using the '--auto_confirm' flag when starting Pluscoder will automatically confirm any plan and task execution without prompting.
Available Commands
PlusCoder supports the following commands during interaction:
/clear: Reset entire chat history./diff: Show last commit diff./config <key> <value>: Override any pluscoder configuration. e.g.,/config auto-commits false/undo: Revert last commit along all messages until last user message is removed./agent: Start a conversation with a new agent from scratch./agent_create: Creates a persistent specialized agent to work with./help: Display help information for available commands./init: (Re)Initialize repository understanding the code base to generate project overview and code guidelines md files./show_repo: Display information about the current repository./show_repomap: Show the repository map with file structure and summaries./show_config: Display the current configuration settings./custom <prompt_name> <additional instructions>: Execute a pre-configured custom prompt command.
Development
-
Create a virtual environment and activate it:
python -m venv .venv source .venv/bin/activate
-
Install the required packages:
pip install -r requirements.txt # pip install -e path/to/pluscoder/root # pip install -e .
-
Edit the
.envfile and set the appropriate values for your environment. -
Set up pre-commit hooks:
# Install pre-commit pip install pre-commit # Install the git hook scripts pre-commit install
-
Run:
# as python module python -m pluscoder.main [options] # as bash command pluscoder [options]
-
Test:
pytest
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pluscoder-0.1.3rc0.tar.gz.
File metadata
- Download URL: pluscoder-0.1.3rc0.tar.gz
- Upload date:
- Size: 107.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d5bd8ad0fe0b2780f9c95646b227051e7cedcfbbf32dc95dcc749bc557035ff
|
|
| MD5 |
eaa9aeb8af359c1e773ddd021ccf01ff
|
|
| BLAKE2b-256 |
ed6c943c6a242d3ae08e5250350ece05123522b8035a645ffe4db493306b9c0d
|
File details
Details for the file pluscoder-0.1.3rc0-py3-none-any.whl.
File metadata
- Download URL: pluscoder-0.1.3rc0-py3-none-any.whl
- Upload date:
- Size: 111.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
69eb8b991f9163e8e3b0641a1d03629ce2abc0fd92fb4cf3144484d30da55794
|
|
| MD5 |
0919c240af37d5223564cff66290938f
|
|
| BLAKE2b-256 |
aee8cbeed3764ed73acdd313dbd62cb05f1c756db651f18427d844adbd52b040
|