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

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

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

Uploaded Python 3Windows x86

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

Uploaded Python 3macOS 11.0+ ARM64

snowdreamtech_unigo-0.1.1-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.1.1-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 d3b8a8033d5cd757ffe5204ffe2ffbd1295a7a2b7192e48aeb530470fe123868
MD5 a50a006369a7af2b08745eda3a148569
BLAKE2b-256 27354fad54a60d54d240231dc93ebbe0a05f25580a6333423ae319ade22d0cc6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a8b9a408241532e4adb4d57d49c2e35bbd032ca6b572a50d0c94ce8cee003e6d
MD5 6f98ad22c3662de5185e7499dda61e4f
BLAKE2b-256 c4672738cdf57c464fe803b6f6a3a302d89740b1736fcfb62458ca86e7009f7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 53db86ecbf93da02c04f6b338de0acfd27e29d9af2de7cdf1d171ad5d779e858
MD5 aef19aaa2c9e0c42cb41f28b203ec429
BLAKE2b-256 8c71476e24d42beb63b3026d1731e7e5217ecbbadfbd2b0dbefef8e86c4c16cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 53235212f3b7b95e893d9eaf82752ce963de48380d8489018d4d61283625b203
MD5 52b82bee5dcce95705458e32afd06ece
BLAKE2b-256 87c3b9bf8d02abbf4f1921c89e11ac6d46ce3be1e13fbc734b3968b59379442b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 e51bc97ac2da0b3c8bb0b0a3aeda23046ea829bc42e37bb6ae38efffc6339fb9
MD5 75d79f6b614e1285346591328e69698e
BLAKE2b-256 13e85b2b505f85f7c6b11de47e6591e25632ca008876544671bf2e84ca03d7c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 63b9145e03bad3d77a7ff042fc9718348686cc441206105afc9869398f091008
MD5 b4c8cd5c85ca121aadc8eb25d08f4a09
BLAKE2b-256 8c5bf49d16854dbbccfa691a06414e970599bf4796772865e3dae6c2e00c7aff

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 69c6aaf41c201a84a7fb4427fc016dfd35d893b83ad512fec36ef5d339a3d9d3
MD5 f660df174816a3b2296f1b5fcf43c67e
BLAKE2b-256 8214497b7576357424c515fb548205f7e6bdff7b5d8737cceb3db49264ca27fd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 bdfbed2207b9a15c77003c8ec8da638b5a2f86a31a508eafdad7efe962883684
MD5 cf668ed421ee3cf68787040d9bfcc2f7
BLAKE2b-256 6c718116acb67d3b4f4c0665895f88d74e640c815395c0f5daabae49360adee6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 49fd03c7eca527c6daf1492315e634fee7715eba1c3b711a8fef5748652fff81
MD5 cdd8655aaf4eed70eefa6c00f21f0dfa
BLAKE2b-256 05b26bada12d2c235ebbf32fdc2c363ed38423e9ad503fc752e77bbdcadedfe1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 4c5354693afbc7bdbc66c923d6a71720dd40b574b2cfda35e349bdd76b2582d6
MD5 be94eff10e6b9cca91e2e7a11cfa1904
BLAKE2b-256 56378596c81bf067925acc63db621d0b7b70488eaa69e59034d4d461293e2b45

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for snowdreamtech_unigo-0.1.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2135c852aaa323a5f849df7955d98123e67887f2074043eeaad1584678d852b7
MD5 3911c9d420771a36f443bcd4959c7319
BLAKE2b-256 e5f9bfce21d69420dc8fef3ca3581322843dd65888737caa4100f9ca7cec548e

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.0

11 files

This release

0.1.1 This release

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