Skip to main content

Shared CLI interface for Artificer — AI dev tooling built on MCP

Project description

artificer-cli

A minimal, configuration-driven CLI that dynamically loads features from installed Artificer packages. Instead of shipping a monolithic CLI, each Artificer package (workflows, conversations, etc.) registers its own commands through a simple plugin system.

Installation

pip install artificer-cli

Usage

artificer --help
artificer --version

Commands are added by installing Artificer feature packages and registering them in your pyproject.toml:

[tool.artificer]
features = [
    "artificer.workflows.feature.WorkflowFeature",
    "artificer.conversations.feature.ConversationFeature"
]

Creating Features

Features extend ArtificerFeature and implement register():

from artificer.cli.feature import ArtificerFeature
from artificer.cli.config import ArtificerConfig
import click

class MyFeature(ArtificerFeature):
    @classmethod
    def register(cls, cli: click.Group, config: ArtificerConfig) -> None:
        @cli.command()
        def my_command():
            """Does something useful."""
            click.echo("Hello from my feature")

Architecture

  • config.py — Loads [tool.artificer] from pyproject.toml
  • feature.py — Base class for all features
  • loader.py — Dynamic feature import and validation
  • cli.py — Builds the Click CLI from config

The artificer/ directory is a PEP 420 namespace package, allowing other packages to extend it (e.g., artificer.workflows, artificer.mcp).

Development

# Install dev dependencies
uv sync

# Run tests
./scripts/test.sh

# Type check
./scripts/typecheck.sh

# All checks
./scripts/check.sh

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

artificer_cli-0.1.0a5.tar.gz (33.0 kB view details)

Uploaded Source

Built Distribution

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

artificer_cli-0.1.0a5-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

Details for the file artificer_cli-0.1.0a5.tar.gz.

File metadata

  • Download URL: artificer_cli-0.1.0a5.tar.gz
  • Upload date:
  • Size: 33.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.22

File hashes

Hashes for artificer_cli-0.1.0a5.tar.gz
Algorithm Hash digest
SHA256 dca6351a06bbc62117bee398e9698bf78388f82853925239b8573166f02ec11a
MD5 f5138834f711f18f5ff8b612b096a616
BLAKE2b-256 fc2a276439981b848008e63a80bb10405ef6f1fe88dbc2310ab7b4d30536cc11

See more details on using hashes here.

File details

Details for the file artificer_cli-0.1.0a5-py3-none-any.whl.

File metadata

File hashes

Hashes for artificer_cli-0.1.0a5-py3-none-any.whl
Algorithm Hash digest
SHA256 7f8f569a86c05600a9e9ac3db60879914b18c18f690d58ce478894d73308a05a
MD5 ac4d644dcb5f976f534faa840a327073
BLAKE2b-256 2b11f934e22341b7bb0b404ec5247b12110ae99e7d960ebb0f8855c77b56af1f

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