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:

    • Set ANTHROPIC_API_KEY if using Claude models
    • Set OPENAI_API_KEY if using OpenAI models
    • Set OPENAI_BASE_URL if using OpenAI (defaults to "https://api.openai.com")
  2. Dependencies:

    • openai
    • anthropic
  3. This project uses ai-agent-toolbox for tool management and XML handling.

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

License

MIT

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.6.tar.gz (6.1 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.6-py3-none-any.whl (7.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: filecannon-0.1.6.tar.gz
  • Upload date:
  • Size: 6.1 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.6.tar.gz
Algorithm Hash digest
SHA256 7466b8f32ec520bbb7c3b1832df59c45d54fd666bcec4d404936dc479945ac18
MD5 612edcfd2ac7e1b2eec6f917cde47cd4
BLAKE2b-256 ffb1eb1ad2104af3f029735b5852b7ed909f0e34f47bafd236734859ed056181

See more details on using hashes here.

File details

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

File metadata

  • Download URL: filecannon-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 7.4 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 58d07342194dc674d54d153323206d57bf210482e9918562b123c0ad326d4b6b
MD5 85f9ada23e414e71771bd153a3649a64
BLAKE2b-256 16a974b79a8c3a6152176178475945f82837a53929b67fdc4731e09a8c80bb42

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