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.0a6.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.0a6-py3-none-any.whl (5.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: artificer_cli-0.1.0a6.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.0a6.tar.gz
Algorithm Hash digest
SHA256 2a1654ddc748c51d10f3394fd7206a2dc7bd98f6a4cb52c302e562a970e7084b
MD5 ea04015c18583bad1f0a71891496b239
BLAKE2b-256 2ac5175d831d22aae72da0feac79de7053ea0d195d7785ad311dd941b155a0dd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for artificer_cli-0.1.0a6-py3-none-any.whl
Algorithm Hash digest
SHA256 fb6ac1289f7e9015178e09afe764428ec0a036c9fdfe5be5b686111161316ab3
MD5 96645e807379b34cb4db73de5d4b1054
BLAKE2b-256 0bc15235aa73a3c96ba5bd221d7c959a8693e28535a8c40a150961d0c7fae1e7

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