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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

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

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unigo-0.1.0-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.1.0-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 8dcfff93d5e56b642d620b9346305d8b325833646e4ebd4872a305923ce8973a
MD5 77d42629b42772a036a70d680922800e
BLAKE2b-256 cd05a2122c2969f290f6602ec9fea96bab3df28099de2e28110feabe6d6e2517

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 1f4a506a1185201cc5c71bfbf7f6dde4ba1f974e7ffa211163bf0cd1ccca1619
MD5 c0fba78d331be839cd77d2f6e58a3d9c
BLAKE2b-256 bf52a3dfb06d13a8693e212d4e60befca47eb83c575eb7be1ae4acb793f5da9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-win32.whl
Algorithm Hash digest
SHA256 9ba549b79e4a1132076bf5753049670a88519fbc23d12709398c4cc4929070c9
MD5 b6b26ea93c29ee533e783f4ca5a4fb28
BLAKE2b-256 4898107f5244d90e7b2ea63142330d06b16a6ba9ef17a8f5ed6e928da8e871d2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 371e3423a9c978c441900cd648a0ede6dbf421a7106db5108e6b09510a08ad0f
MD5 c92d532b67dc785a8a71d2c835571e49
BLAKE2b-256 885cdb30d6a7f4b34827036043655972f1acee039535e196629f792432ad3d82

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 03a47f8382c85ee03bdeddd0ffa77867bfeb33a214fdec831c3fc1e111203024
MD5 89792a7b4272d5580a87c63beea3fc86
BLAKE2b-256 23ba581798096d6f6e34ee2c62b3b5a44bfd2c020a3d85c97624a45215162692

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 53b2830c14cc61ae9e81baced6e59ededd5119fabb9e0516205cd093dd36e7a0
MD5 429aab96992dbc48d3a0416bdfe20d20
BLAKE2b-256 ccf48214f1e09fc84424e0b9f82ed352dc2d9155a236d8e550501c698fc9d019

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2bff181f0dedca2b41c00198f261dbf6c21ce1bfc24ecc2f67d061ed8b74a662
MD5 4cefb22619bf6b39e960ea533b431e26
BLAKE2b-256 1669cef53b80bbee9ece74b82206501cc283de68617574dd030629bc504c12c4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 0072fa3187252974660c4e45cdd9360b50e2f6f07d591c6432f014461df723a2
MD5 daf0dce1973a7c708a7e8c5c3fc93298
BLAKE2b-256 6c6087570029324b081ffc6549c8345291de9db46b174fd186c24050bd06abe8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b6010b99bebd8d14e5109daf692375508ee34f3c894aea9caa7c1825807e88aa
MD5 99cda6d3148dc5013a696be8154aa1ca
BLAKE2b-256 5d2e0ab5fbe3eb606202db39a642c90bf9095b2249ba3a9962391efab78ea526

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7de16cbee7cc5459ad7e75d6122570f9e0e83555b033bc5798f08e844839d110
MD5 65b01d4f85c292aa67be900408117524
BLAKE2b-256 3089b1009016badfa4cccfaa1671383243e0d7adf4300eab6704f23f44493e8b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ca653e8b7dce41014aa3bc464c97831603f0f866dff52cca1e17291d6b26442c
MD5 ffb136d00b98dcf71005f28afdefd637
BLAKE2b-256 328e286a975a4b02808eb2aed870f0c5679832eec7818c9424446163b193c874

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

11 files

0.1.1

11 files

This release

0.1.0 This release

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