Skip to main content

AI-powered file generation CLI tool

Project description

FileCannon

Introduction

FileCannon is an AI-powered file generation CLI tool that creates new files based on examples and natural language descriptions. It leverages AI models to generate content, making it easy to quickly create files with a structure similar to provided examples.

Installation

pip install filecannon

Then, you can use the filecannon command with the following syntax:

filecannon <prompt> [options]

Arguments:

  • prompt: Description of the file to generate (required)

Options:

  • -e, --example: Path to example file(s) (can be used multiple times)
  • -m, --model: Model to use (default: claude-3-5-sonnet-20240620)
  • -o, --output: Output directory (default: current directory)

Example:

filecannon "Create a Python script that calculates fibonacci numbers" -e examples/math_functions.py -o output/

Files

The main custom files in this project are:

  • filecannon.py: The main script containing the CLI logic and core functionality
  • ai_manager.py: Handles AI interactions and prompt management
  • file_manager.py: Manages file operations and tool implementations
  • tool_parser.py: Allows XML use of tools by FileCannon

Methods

AIManager

  • generate_content(prompt: str, examples: List[str], example_contents: List[str]) -> str
  • construct_prompt(user_prompt: str, context: dict) -> str

FileManager

  • list_files(directory: str) -> List[str]
  • read_file(path: str) -> str
  • write_file(path: str, content: str) -> bool
  • validate_path(path: str) -> bool

ToolParser

This component allows XML use of tools by FileCannon. The specific methods are not detailed in the specification.

Models

FileCannon supports the following AI models:

  • Claude 3.5 Sonnet (default)
  • OpenAI models (configurable)

Available CSS styles

This project is a CLI tool and does not include any CSS styles.

Available JS functions

This project is a CLI tool and does not include any JavaScript functions.

Additional notes

  1. Environment Variables:

  2. Dependencies:

    • openai
    • anthropic
  3. The tool uses a specific conversation flow for generating content, which includes system prompts, user prompts, and assistant responses.

  4. The write_file tool is used to output the generated content in XML format:

    <use_tool>
        <name>write_file</name>
        <path>path/to/output/filename.ext</path>
        <content>
            [generated content]
        </content>
    </use_tool>
    
  5. Always ensure you have the necessary API keys and permissions set up before using the tool.

  6. The generated content aims to be practical and production-ready, following the structure and conventions shown in the example files.

Part of the 255labs.xyz toolkit for AI-first development.

Project details


Download files

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

Source Distribution

filecannon-0.1.3.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

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

filecannon-0.1.3-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file filecannon-0.1.3.tar.gz.

File metadata

  • Download URL: filecannon-0.1.3.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for filecannon-0.1.3.tar.gz
Algorithm Hash digest
SHA256 fb08a42dd717d960ab0dd46254ca75fe07bfc1f662b69fcc7270a897dbe481f5
MD5 13265f3626a1ebebbb9fe3c0830d9f47
BLAKE2b-256 86b55c48d55c6dab2d578120f6aaae5b325d9206a85d2caf81f552e08303b672

See more details on using hashes here.

File details

Details for the file filecannon-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: filecannon-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for filecannon-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9079666a628da4d4ab6afd865d4122f020bffff17ca1471555c4737bf3b7edc3
MD5 f0d729b7ecb475def8bc6ef6c24f7b0d
BLAKE2b-256 922860d09688be5c2ff96df1fe78cdc154553a07c02d3939efd9d7298c1ea1a9

See more details on using hashes here.

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