Skip to main content

silicon

CI PyPI version Python 3.13+ License: MIT

A Python CLI hello world template with best practices for packaging, testing, and CI/CD.

✨ Features

  • Modern CLI: Built with Typer for a clean command-line interface
  • Well-Structured: Source layout with src/ directory and proper packaging
  • Comprehensive Testing: pytest with coverage requirements and parallel execution
  • CI/CD Ready: GitHub Actions workflows for testing, versioning, and releases
  • Multi-Platform: PyPI, Homebrew, and pre-built binary distribution

💖 Support

Love this tool? Your support means the world! ❤️

Currency Address QR
₿ BTC bc1qwn7ea6s8wqx66hl5rr2supk4kv7qtcxnlqcqfk
Ξ ETH 0x7cdB1861AC1B4385521a6e16dF198e7bc43fDE5f
ɱ XMR 463fMSWyDrk9DVQ8QCiAir8TQd4h3aRAiDGA8CKKjknGaip7cnHGmS7bQmxSiS2aYtE9tT31Zf7dSbK1wyVARNgA9pkzVxX
◈ BNB 0x7cdB1861AC1B4385521a6e16dF198e7bc43fDE5f

📦 Installation

Homebrew (macOS/Linux)

brew tap alkalescent/tap
brew install silicon

PyPI (Recommended)

uv pip install silicon

After installation, use either the command directly or as a Python module:

# Direct command
silicon --help

# As Python module (if direct command not in PATH)
uv run python -m silicon --help

From Source

Clone the repository and install in development mode:

git clone https://github.com/alkalescent/silicon.git
cd silicon
make install DEV=1  # Install with dev dependencies

Pre-built Binaries

Download from GitHub Releases:

Variant Description Startup Format
Portable Single file, no installation needed ~10 sec silicon-{os}-portable
Fast Optimized for speed ~1 sec silicon-{os}-fast.tar.gz

Note: In the filenames and commands, replace {os} with your operating system (e.g., linux, macos). The examples below use linux. For Windows, you may need to use a tool like 7-Zip to extract .tar.gz archives.

For Portable, download and run directly:

chmod +x silicon-linux-portable
./silicon-linux-portable --help

For Fast, extract the archive and run from within:

tar -xzf silicon-linux-fast.tar.gz
./cli.dist/silicon --help

Build from Source

Build your own binaries using Nuitka:

git clone https://github.com/alkalescent/silicon.git
cd silicon

# Build portable (single file, slower startup)
MODE=onefile make build

# Build fast (directory, faster startup)
MODE=standalone make build

🚀 Usage

The CLI provides simple hello and goodbye commands.

Hello Command

Say hello to someone:

silicon hello                    # Hello, World!
silicon hello --name Developer   # Hello, Developer!
silicon hello -n "Your Name"     # Hello, Your Name!

Goodbye Command

Say goodbye to someone:

silicon goodbye                  # Goodbye, World!
silicon goodbye --name Developer # Goodbye, Developer!
silicon goodbye -n "Your Name"   # Goodbye, Your Name!

Version

Check the installed version:

silicon version    # v1.0.0
silicon --version  # v1.0.0
silicon -v         # v1.0.0

🧪 Testing

Run the test suite:

make test

Run with coverage reporting (requires 90% coverage):

make cov

Run smoke tests:

make smoke

🏗️ Architecture

The CLI consists of the following modules:

  • tools.py: Core utility classes

    • Greeter class: Simple greeting functionality
  • cli.py: Command-line interface using Typer

    • hello: Say hello to someone
    • goodbye: Say goodbye to someone
    • version: Display version
  • test_tools.py / test_cli.py: Comprehensive test suites

📖 Using as a Template

  1. Fork or clone this repository
  2. Replace silicon with your project name in:
    • pyproject.toml (name, scripts, URLs)
    • src/silicon/ directory name
    • Imports in source files
    • README.md
  3. Add your own functionality in tools.py and cli.py
  4. Update tests accordingly

📚 Dependencies

  • typer: Modern CLI framework

📄 License

MIT License — see LICENSE for details.

Metadata

Release files for silicon 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for silicon 1.2.0
File Size Uploaded
silicon-1.2.0.tar.gz 44.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for silicon 1.2.0
File Interpreter ABI Platform
silicon-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 51.4 kB

Release files / silicon-1.2.0.tar.gz

Download URL silicon-1.2.0.tar.gz
Size 44.7 kB
Tags Source
SHA-256 checksum
How to use checksums
52d6bf154d46bf1a104e0f05b6f2a3fc0d3167aeee019526e3f4dc9a602ca69e
BLAKE2b-256 checksum
How to use checksums
8b4c5fd279e55c44d85f8ab5bbe680d9eac0ecb41cfe6692c9d6db9bc3cac9bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 6, 2026.

Transparency log

Release files / silicon-1.2.0-py3-none-any.whl

Download URL silicon-1.2.0-py3-none-any.whl
Size 6.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d78d543356b619a6723ca9eb7b4943b7e08b2732b5223d3731e3da973f4ba526
BLAKE2b-256 checksum
How to use checksums
316777982a25f9dabf34a60cdd01c5f3385ac3df8a93ded0d3ec8906eb2063cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.3

2 release files

1.1.2

2 release files

1.1.1

2 release files

0.33.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page