{"id":23141855,"url":"https://github.com/allaman/go-cli-skeleton","last_synced_at":"2026-02-26T08:30:15.311Z","repository":{"id":38366957,"uuid":"498903139","full_name":"Allaman/go-cli-skeleton","owner":"Allaman","description":"A minimal but functional skeleton Go CLI application","archived":false,"fork":false,"pushed_at":"2024-06-25T13:33:42.000Z","size":4246,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-17T12:39:05.393Z","etag":null,"topics":["bootstrap","cli","go","golang","http","json","kong","logging","skeleton","template","zerolog"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Allaman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-01T21:26:55.000Z","updated_at":"2024-06-25T13:33:44.000Z","dependencies_parsed_at":"2023-12-10T08:23:28.305Z","dependency_job_id":"c419f35c-a5da-41d9-8635-247b75f688c1","html_url":"https://github.com/Allaman/go-cli-skeleton","commit_stats":null,"previous_names":[],"tags_count":11,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Allaman%2Fgo-cli-skeleton","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Allaman%2Fgo-cli-skeleton/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Allaman%2Fgo-cli-skeleton/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Allaman%2Fgo-cli-skeleton/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Allaman","download_url":"https://codeload.github.com/Allaman/go-cli-skeleton/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239868777,"owners_count":19710478,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bootstrap","cli","go","golang","http","json","kong","logging","skeleton","template","zerolog"],"created_at":"2024-12-17T14:14:34.208Z","updated_at":"2026-02-26T08:30:15.249Z","avatar_url":"https://github.com/Allaman.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go CLI Skeleton\n\nA skeleton/template for writing Go CLI applications.\n\n## What's included\n\n- global logging via [zerolog](https://github.com/rs/zerolog) (JSON and human friendly)\n- simple HTTP client via `net/http` package\n- parsing JSON dynamically via [gjson](https://github.com/tidwall/gjson) and via unmarshalling with `structs`\n- reading a file\n- writing to a file\n- reading directory content (optional recursively)\n- reading from stdin (e.g. a Linux pipe)\n- CLI commands, parameters and flags via [Kong](https://github.com/alecthomas/kong)\n- only main package\n- [Goreleaser](https://goreleaser.com/) workflow for automatic multi platform binary releases and Dockerhub images (allaman/go-cli-skeleton:latest or tag)\n\n## What's not included\n\n- sophisticated HTTP client\n- parsing yaml, json, ... files\n- modular file structure ([project-layout](https://github.com/golang-standards/project-layout))\n- tests 😬\n\n```sh\ngo run . -h\nUsage: go-cli-skeleton \u003ccommand\u003e\n\nA minimal skeleton for building CLI apps\n\nFlags:\n  -h, --help           Show context-sensitive help.\n  -d, --debug          Enable debug output\n  -j, --json-output    Log in json format\n\nCommands:\n  hello\n    default command\n\n  get\n    GET query to postman-echo and printing response\n\n  post\n    POST query to postman-echo and printing response\n\n  file read --path=STRING\n    Read a file\n\n  file write --path=STRING\n    Write a file\n\n  dir\n    List all files in a directory (and sub directories)\n\n  parse\n    GET query to postman-echo and parsing the response\n\n  version\n    Show version information\n\nRun \"go-cli-skeleton \u003ccommand\u003e --help\" for more information on a command.\n```\n\n## TODO\n\n- GlobalLog improvement\n- include [pterm](https://github.com/pterm/pterm)\n- parse yaml/json files\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallaman%2Fgo-cli-skeleton","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fallaman%2Fgo-cli-skeleton","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fallaman%2Fgo-cli-skeleton/lists"}