Skip to main content

UniGo

CI Pipeline CD Pipeline GitHub Pages CodeQL Multi-OS Verified Security Audit SBOM Available License: MIT Release Dependabot Enabled pre-commit GitHub Stars GitHub Issues Code Size

English | 简体中文

UniGo is a fast, flexible, and enterprise-grade Golang CLI template inspired by UniRTM and helloworld. It provides a robust foundation for building modern command-line applications in Go, featuring beautiful terminal output, structured logging, built-in caching, and a comprehensive CI/CD pipeline.

🌟 Features

  • Modern CLI Architecture: Built with Go 1.24+ and Cobra, providing a structured and extensible command-line application framework.
  • Beautiful Output: Utilizes pterm for rich, colorful, and interactive terminal output.
  • Structured Logging: Built-in support for Go's standard slog package for high-performance structured logging.
  • Robust Tooling: Includes built-in commands like doctor, self-update, cache, config, and license.
  • Triple Guarantee Quality: 100% code purity enforced through IDE checks, Pre-commit hooks, and GitHub Actions integrated quality gates.
  • Cross-Platform Ready: Runs seamlessly on macOS, Linux, and Windows.

🏗️ Architecture & Design

Overview

UniGo is engineered to solve the boilerplate problem when starting new Go CLI projects. It standardizes the development environment, architectural patterns, and automation pipelines out of the box.

Core Components

  • CLI Framework: Utilizes spf13/cobra and spf13/viper for powerful command parsing and configuration management.
  • UI & Logging: Integrated pterm for UI components and slog for structured event logging.
  • Database & Caching: SQLite-backed (via modernc.org/sqlite) local caching and transactional data storage.
  • Task Orchestration: Configured with UniRTM for managing local development workflows (lint, test, verify).

📖 Usage Guide

Prerequisites

  • Runtime: Go (>= 1.24).
  • Git: Global git installation required.
  • UniRTM: Required for task execution and orchestration.

Installation

Via NPM:

npm install -g @snowdreamtech/unigo

Via PyPI:

pip install snowdreamtech-unigo

Quick Start

  1. Install UniRTM: Ensure unirtm is installed on your system.
  2. Initialize: unirtm run setup (bootstraps core dependencies and hooks).
  3. Install: unirtm run install (installs project dependencies).
  4. Verify: unirtm run verify (ensures everything is green).
  5. Build: go build -o unigo main.go

Available Commands

  • unigo version: Print the version number
  • unigo doctor: Check system health and diagnose issues
  • unigo self-update: Update to the latest version
  • unigo cache: Manage local cache
  • unigo config: Manage configuration
  • unigo license: Manage copyright license headers

🛠️ Operations Guide

Pre-deployment Checklist

  1. Run unirtm run verify to ensure all quality gates are green (runs formatters, linters, tests, and security audits).
  2. Ensure CHANGELOG.md is updated.

Troubleshooting

  • Problem: unirtm run verify fails with test errors.
    • Solution: Ensure your code passes all Go unit tests. UniGo enforces strict coverage and race condition checks.
  • Problem: Pre-commit hooks fail.
    • Solution: The hooks often auto-fix issues (like formatting). Stage the modified files and commit again.

🔒 Security Considerations

Security Model

  • Audit Logging: All critical operations and security scans are executed during the verify task using tools like trivy, gitleaks, and govulncheck.
  • Dependency Management: Powered by Dependabot to ensure all dependencies are kept up-to-date and secure.

🧑‍💻 Development Guide

Local Development Setup

git clone https://github.com/snowdreamtech/UniGo.git
cd UniGo
unirtm run setup
unirtm run install

🚀 Proxy Usage Scenarios

The GITHUB_PROXY (default: https://gh-proxy.sn0wdr1am.com/) is optimized for specific network acceleration scenarios. Misusing it for unsupported protocols (like Git) will result in errors.

Scenario Supported? Example / Note
Release Files ✅ Yes .../releases/download/v1.0/tool.zip
Source Archives ✅ Yes .../archive/master.zip or .tar.gz
Direct File Links ✅ Yes .../blob/master/filename
Git Clone No Do not use for git clone or insteadOf configs.
Project Folders No Browsing/cloning via proxy is not supported.

[!IMPORTANT] To prevent breaking toolchains (like unirtm), this template explicitly disables Git redirection via this proxy. Use it only for direct HTTP downloads in scripts.

📄 License

This project is licensed under the MIT License. Copyright (c) 2026-present SnowdreamTech Inc. See the LICENSE file for the full license text.

Star History

Star History Chart

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

snowdreamtech_unigo-0.2.0-py3-none-win_arm64.whl (11.5 MB view details)

Uploaded Python 3Windows ARM64

snowdreamtech_unigo-0.2.0-py3-none-win_amd64.whl (12.0 MB view details)

Uploaded Python 3Windows x86-64

snowdreamtech_unigo-0.2.0-py3-none-win32.whl (11.8 MB view details)

Uploaded Python 3Windows x86

snowdreamtech_unigo-0.2.0-py3-none-macosx_11_0_arm64.whl (5.7 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unigo-0.2.0-py3-none-macosx_10_9_x86_64.whl (6.0 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 ef1e07aaa199597ce39e9124bd6f4dfaafc36f28963e7762ea2e07cbb23ae1fa
MD5 d056e8a71ae4c00beebcb88dc2b75a66
BLAKE2b-256 21fae03753d18173042d6a203a590d75661bef4acec91be18960f8a3b56e2245

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 8479e623d63b405c074329444b4cd07c4faf9d02f29d4c5dd2df70620da9dd96
MD5 5e4b8fa58447e483144d25bdc74ae243
BLAKE2b-256 8a19707430c4ce56cb3568371d0b227285401e616b0e5b3d1c2d4e6692a79950

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-win32.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 6c9868cc84003aafbbc7dd92ee73dc5af91afa30f2f60ee2732db9534a7c2069
MD5 de33129313add4607a01511ffc5e808b
BLAKE2b-256 59dee76992d4493c6cb5dfbe8e2be06d9574a68239f224662bbb3fdb354ce366

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b9a91a1dc3b88d9dd1e5cd9ebf7c56fd633b2bb234c8c35af5a353d1b6e735a6
MD5 5fac33753727da940da61f9158c58f40
BLAKE2b-256 4397a3170ed951ec88171867ff5c8c7a5c0366eb533852ca776ceb398cfe2854

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 af4abb0b655384e845d857cc94347ea1a39f9b42b4d55b310ab34bf10ec20711
MD5 ff6fbb1fc3167cbc7d3193492958dac6
BLAKE2b-256 5522cbaae1b4aa051933be5aaa4a17d9be3447661697f64eaa6d23afc5a4fa2a

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c51654584beafb824103e0b05aee1e91d1ef709ea45ea733fd68aaf5c6504862
MD5 8928520b940cbb122d8e242dd801fcdd
BLAKE2b-256 cc4296342c4bb8e1d0da631dcc584161975a4f6b494e232b6bbd53efafe81bfc

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_i686.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 0c4f7d46d1a4820fb176b6dd9552947c410568baf06ae7b6e7060fff6259adef
MD5 88d2bebd9defc666b1b391e09b9793a2
BLAKE2b-256 8bfcb8a93d08c53ededcfa479968a94c0b0e9346a72aabe5ee32f8e4b7ddcc32

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 f9b30be4963ab609525b869e46398818d6e7846d6302839db6e10ddd24dabd39
MD5 d20e4a5d2e349d3830edbbe4b9d31d0a
BLAKE2b-256 02592aee999f1d02864274ef65f7319ea5222fe240ec622357524fcc03acb3f5

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 c9ec769f8ea3ea6fe48eafaffc03208907713ac186771dc924ef94839628fd5e
MD5 f21e17629ca12599d8dfabc7064e5fbd
BLAKE2b-256 f3694a7797124d27cb91d88572ab281352a7c7be4101eb06e3bcdff3ce244705

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 94435853b3ae2f146907421a0ed33b1c4a53c7d72a41db85f597eaa1f48fd5b5
MD5 566ff7b7729379653db01b5d331e2d23
BLAKE2b-256 0e25620a65d507013c7ca23cd9e17b760b8231606a39d67783af98ef29fda380

See more details on using hashes here.

File details

Details for the file snowdreamtech_unigo-0.2.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.2.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b1cf5e5251f1076e10b93e2b03e7e3af84422e3aee4319a95d62d5d5baaad3da
MD5 a38d84592cb6dc8878289fbc6ef89432
BLAKE2b-256 8b4fb3c60112614dae89b544dfddf3a783e5af5eae0fadd03f0a1072ce54dbd8

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.0 This release

11 files

0.1.1

11 files

0.1.0

11 files

0.0.9

11 files

0.0.8

11 files

0.0.7

11 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