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.0.9-py3-none-win_arm64.whl (11.0 MB view details)

Uploaded Python 3Windows ARM64

snowdreamtech_unigo-0.0.9-py3-none-win_amd64.whl (11.5 MB view details)

Uploaded Python 3Windows x86-64

snowdreamtech_unigo-0.0.9-py3-none-win32.whl (11.3 MB view details)

Uploaded Python 3Windows x86

snowdreamtech_unigo-0.0.9-py3-none-macosx_11_0_arm64.whl (5.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unigo-0.0.9-py3-none-macosx_10_9_x86_64.whl (5.8 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 e82626dc38a0bd8ec0ae260ebd1b300eda6ae912762e174aab92a56a11d05e3f
MD5 4435392c222d8ed005b043e155449186
BLAKE2b-256 cf6453fcd8bd0fcf64578bf4155ca44bacbdc1ed72529aa0e3e7855d322c445d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 ab94f85ea5e6e971b494edfbafdd8a91481f21f42e2c0953354bf37fd680198a
MD5 20bb7d2ab2fecdea683b97e0fdb047ab
BLAKE2b-256 a1b619b78bec62478b0b9298e6f930958863724c952036f763582c3afe999564

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-win32.whl
Algorithm Hash digest
SHA256 97adfc2d48bb837d14e7c7d4dada053b055b30b007ff62f7ac7e40f5e999e42e
MD5 6b0849dbae86b1361658d90ac2e971e7
BLAKE2b-256 a387f69425637b3b07450cc07bf4d56e50df5e056ff17d7bbe451eb89117a16f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 02bd2d211721609a042273d45fe743f38595556cfb8310b14d1671f25dc27b9d
MD5 a70efd025c5f553a8b529d04c4a6c4fa
BLAKE2b-256 9c738761345ae6ae58c0af83cb3b13c0abf0b7e820c94a153ffada37232bf783

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 bfd22d2a28074fa01c00954e5b4aedeeb28caab73d6a9beeb4d2c37e2b34463a
MD5 7c434d949134a35d6c58a1435162d3b5
BLAKE2b-256 dd8ad99fb1c3d1a974ca282417ff2a24c49495b3963f98135632da96416acfca

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 196073a5a0f705906faf5e8a1e396b86a8810589c622f3523d3b0e2e57804b9b
MD5 1a95e27a1355b40e18a0981e939830fe
BLAKE2b-256 2573477139608e3fa365ecd190f49cc60e0b2e4a12112ff6af1e0bc2d84364c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 5e9c0c7e204915a4e9bff73e2db27aa808a8b15a57bf74bff950cffdf65037e9
MD5 831dd8c13bd92b0af90334350aa64954
BLAKE2b-256 e76f37eb33bc0309e550c5491b253c740fa94c0e28f220a34c0dbe2564c9a1c5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 549a56cf6ef263db85aa03293492ca4bb41107d65938e45c1458765baac0a333
MD5 fdbc02180a6f51fc41c34125fc8eca6e
BLAKE2b-256 022960d006e35c5afb773e22abee0bed0bb3e9025cd2f2795ee5551139559a4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2a76c481b9f5d988a91205a2adfc5224b25beccae25d380e20f5e1db3aa74353
MD5 b7cf1e525ca49eb192b0bffedd7e1ed9
BLAKE2b-256 c93b49ff7279ab00cd8c4cc6c54e59e89a9e9fc42746df9574f7d73f7ff35eed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a3ba3184814b611ac3461bae401d37b556b4d6e859252ef3f4709f811e590a93
MD5 313382a990e85350e05f52133cc7de1d
BLAKE2b-256 a3f9b73520e84efe2220c57d4065b12171341e47dbfad3cd9c4adf3c148a8d44

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.0.9-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2fcd8f8d87c920ac88c18c41de352b3e84974c6deb38b2410107376194423760
MD5 4ce547f37cbcfc4d97b597b265e7c923
BLAKE2b-256 ee848b21baeb0b89757b3cac289b0e47715d7c959ba0b5b440cae3db5cdae74b

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

11 files

0.1.1

11 files

0.1.0

11 files

This release

0.0.9 This release

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