{"id":13432662,"url":"https://github.com/deanishe/awgo","last_synced_at":"2025-04-08T12:08:22.587Z","repository":{"id":37678074,"uuid":"102889405","full_name":"deanishe/awgo","owner":"deanishe","description":"Go library for Alfred 3 + 4 workflows","archived":false,"fork":false,"pushed_at":"2024-04-03T07:40:57.000Z","size":9213,"stargazers_count":877,"open_issues_count":17,"forks_count":49,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-04-01T10:17:48.347Z","etag":null,"topics":["alfred","alfred-3","alfred-4","alfred-workflow","alfred3","alfred3-workflow","alfred4","alfred4-workflow","alfredworkflow","awgo","fuzzy","fuzzy-search","gitea","github","go","golang","workflow"],"latest_commit_sha":null,"homepage":"https://godoc.org/github.com/deanishe/awgo","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/deanishe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2017-09-08T17:53:10.000Z","updated_at":"2025-03-25T19:44:14.000Z","dependencies_parsed_at":"2024-04-12T23:45:46.886Z","dependency_job_id":"dc10cef6-04d3-40f1-aa57-5fcf8c8ceddb","html_url":"https://github.com/deanishe/awgo","commit_stats":{"total_commits":284,"total_committers":2,"mean_commits":142.0,"dds":"0.0035211267605633756","last_synced_commit":"ddd1d217895c58407f108abd313becbfcdc4d91d"},"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanishe%2Fawgo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanishe%2Fawgo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanishe%2Fawgo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanishe%2Fawgo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deanishe","download_url":"https://codeload.github.com/deanishe/awgo/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247838444,"owners_count":21004580,"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":["alfred","alfred-3","alfred-4","alfred-workflow","alfred3","alfred3-workflow","alfred4","alfred4-workflow","alfredworkflow","awgo","fuzzy","fuzzy-search","gitea","github","go","golang","workflow"],"created_at":"2024-07-31T02:01:14.876Z","updated_at":"2025-04-08T12:08:22.555Z","avatar_url":"https://github.com/deanishe.png","language":"Go","funding_links":[],"categories":["Go","Libraries","Repositories","Helpers"],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://raw.githubusercontent.com/deanishe/awgo/master/Icon.png\" alt=\"AwGo Logo\" title=\"AwGo Logo\"\u003e\n\u003c/div\u003e\n\n\n# AwGo — A Go library for Alfred workflows #\n\n[![Build Status][ghaction-badge]][ghaction-link]\n[![Go Report Card][goreport-badge]][goreport-link]\n[![Coverage Status][coveralls-badge]][coveralls-link]\n[![Go Reference][godoc-badge]][godoc-link]\n\n\u003c!--\n[![Build Status][azure-badge]][azure-link]\n[![Build Status][travis-badge]][travis-link]\n[![Codacy Quality][codacy-badge-quality]][codacy-link]\n[![Codacy coverage][codacy-badge-coverage]][codacy-link]\n[![Codecov coverage][codecov-badge]][codecov-link]\n--\u003e\n\n\nFull-featured library to build lightning-fast workflows in a jiffy.\n\n- [Features](#features)\n- [Installation \u0026 usage](#installation--usage)\n- [Documentation](#documentation)\n- [Requirements](#requirements)\n- [Development](#development)\n- [Licensing \u0026 thanks](#licensing--thanks)\n\n\n## Features ##\n\n- Full support for Alfred 3 \u0026 4\n- Bi-directional interface to [workflow's config][config]\n- Fluent API for generating [Script Filter JSON][feedback]\n- [Fuzzy sorting/filtering][fuzzy]\n- [Simple, powerful API][cache-api] for [caching/saving workflow data][cache]\n- Keychain API to [securely store (and sync) sensitive data][keychain]\n- Helpers to [easily run scripts and script code][scripts]\n- Workflow [update API][update] with built-in support for [GitHub][update-github] \u0026 [Gitea][update-gitea]\n- [Pre-configured logging][logging] for easier debugging, with a rotated log file\n- [Catches panics, logs stack trace and shows user an error message][run]\n- [\"Magic\" queries/actions][magic] for simplified development and user support\n- macOS [system icons][icons]\n\n\n## Installation \u0026 usage ##\n\nInstall AwGo with:\n\n```sh\ngo get -u github.com/deanishe/awgo\n```\n\nTypically, you'd call your program's main entry point via `Workflow.Run()`.\nThis way, the library will rescue any panic, log the stack trace and show\nan error message to the user in Alfred.\n\nprogram.go:\n\n```go\npackage main\n\n// Package is called aw\nimport \"github.com/deanishe/awgo\"\n\n// Workflow is the main API\nvar wf *aw.Workflow\n\nfunc init() {\n    // Create a new Workflow using default settings.\n    // Critical settings are provided by Alfred via environment variables,\n    // so this *will* die in flames if not run in an Alfred-like environment.\n    wf = aw.New()\n}\n\n// Your workflow starts here\nfunc run() {\n    // Add a \"Script Filter\" result\n    wf.NewItem(\"First result!\")\n    // Send results to Alfred\n    wf.SendFeedback()\n}\n\nfunc main() {\n    // Wrap your entry point with Run() to catch and log panics and\n    // show an error in Alfred instead of silently dying\n    wf.Run(run)\n}\n```\n\nIn the Script Filter's Script box (Language = /bin/bash with input as\nargv):\n\n```sh\n./program \"$1\"\n```\n\n## Documentation ##\n\nRead the docs [on pkg.go.dev][godoc].\n\nCheck out the [example workflows][examples-code] ([docs][examples-docs]), which\nshow how to use AwGo. Use one as a template to get your own workflow up and\nrunning quickly.\n\n\n## Requirements ##\n\nThe library (and therefore the unit tests) rely on being run in a minimally\nAlfred-like environment, as they pull configuration options from the environment\nvariables set by Alfred.\n\nThis means that if you want to run AwGo-based code outside Alfred, e.g. in your\nshell, you must set at least the following environment variables to meaningful\nvalues, or the library will panic:\n\n- `alfred_workflow_bundleid`\n- `alfred_workflow_cache`\n- `alfred_workflow_data`\n\nAnd if you're using the update API, also:\n\n- `alfred_workflow_version`\n- `alfred_version` (not needed for Alfred 4+)\n\n\n## Development ##\n\nTo create a sufficiently Alfred-like environment, you can `source` the `env.sh`\nscript in the project root or run unit tests via the `run-tests.sh` script\n(which also sets up an appropriate environment before calling `go test`).\n\n\n## Licensing \u0026 thanks ##\n\nThis library is released under the [MIT licence][licence]. It was built with\n[neovim][neovim] and [GoLand by JetBrains][jetbrains].\n\nThe icon is based on the [Go Gopher][gopher] by [Renee French][renee].\n\n\n[alfred]: https://www.alfredapp.com/\n[licence]: ./LICENCE\n[godoc]: https://pkg.go.dev/github.com/deanishe/awgo\n[gopher]: https://blog.golang.org/gopher\n[renee]: http://reneefrench.blogspot.com\n[config]: https://pkg.go.dev/github.com/deanishe/awgo#Config\n[feedback]: https://pkg.go.dev/github.com/deanishe/awgo#Feedback.NewItem\n[fuzzy]: https://pkg.go.dev/github.com/deanishe/awgo/fuzzy\n[cache]: https://pkg.go.dev/github.com/deanishe/awgo#hdr-Storing_data\n[cache-api]: https://pkg.go.dev/github.com/deanishe/awgo#Cache\n[run]: https://pkg.go.dev/github.com/deanishe/awgo#Run\n[keychain]: https://pkg.go.dev/github.com/deanishe/awgo/keychain\n[scripts]: https://pkg.go.dev/github.com/deanishe/awgo/util#hdr-Scripting\n[update]: https://pkg.go.dev/github.com/deanishe/awgo/update\n[update-github]: https://pkg.go.dev/github.com/deanishe/awgo/update#GitHub\n[update-gitea]: https://pkg.go.dev/github.com/deanishe/awgo/update#Gitea\n[logging]: https://pkg.go.dev/github.com/deanishe/awgo#hdr-Logging\n[magic]: https://pkg.go.dev/github.com/deanishe/awgo#MagicAction\n[icons]: https://pkg.go.dev/github.com/deanishe/awgo#Icon\n[examples-code]: https://github.com/deanishe/awgo/tree/master/_examples\n[examples-docs]: https://pkg.go.dev/github.com/deanishe/awgo/_examples\n[jetbrains]: https://www.jetbrains.com/?from=deanishe/awgo\n[neovim]: https://neovim.io/\n\n[godoc-badge]: https://pkg.go.dev/badge/github.com/deanishe/awgo.svg\n[godoc-link]: https://pkg.go.dev/github.com/deanishe/awgo\n[goreport-link]: https://goreportcard.com/report/github.com/deanishe/awgo\n[goreport-badge]: https://goreportcard.com/badge/github.com/deanishe/awgo\n[azure-badge]: https://img.shields.io/azure-devops/build/deanishe/6cd8e4fe-7366-4485-aea6-e9d75e7757b2/1\n[azure-link]: https://dev.azure.com/deanishe/AwGo/_build\n[ghaction-badge]: https://github.com/deanishe/awgo/workflows/CI/badge.svg\n[ghaction-link]: https://github.com/deanishe/awgo/actions?query=workflow%3ACI\n[coveralls-badge]: https://coveralls.io/repos/github/deanishe/awgo/badge.svg?branch=master\u0026v3\n[coveralls-link]: https://coveralls.io/github/deanishe/awgo?branch=master\n\n\u003c!--\n[coverage-badge]: https://img.shields.io/codacy/coverage/e785f7b0e830468da6fa2856d62e59ab?color=brightgreen\n[codacy-link]: https://www.codacy.com/app/deanishe/awgo\n[travis-badge]: https://img.shields.io/travis/deanishe/awgo\n[travis-link]: https://travis-ci.org/deanishe/awgo\n[codacy-badge-quality]: https://api.codacy.com/project/badge/Grade/e785f7b0e830468da6fa2856d62e59ab\n[codacy-badge-coverage]: https://api.codacy.com/project/badge/Coverage/e785f7b0e830468da6fa2856d62e59ab\n[travis-badge]: https://travis-ci.org/deanishe/awgo.svg?branch=master\n[codecov-badge]: https://codecov.io/gh/deanishe/awgo/branch/master/graph/badge.svg\n[codecov-link]: https://codecov.io/gh/deanishe/awgo\n[coveralls-badge]: https://img.shields.io/coveralls/github/deanishe/awgo/master\n[ghaction-badge]: https://img.shields.io/github/workflow/status/deanishe/awgo/CI\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeanishe%2Fawgo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeanishe%2Fawgo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeanishe%2Fawgo/lists"}