{"id":21659286,"url":"https://github.com/joshuacc/ahkpm","last_synced_at":"2025-04-11T22:34:24.190Z","repository":{"id":61346693,"uuid":"443179514","full_name":"joshuacc/ahkpm","owner":"joshuacc","description":"The AutoHotkey Package Manager","archived":false,"fork":false,"pushed_at":"2024-01-26T08:38:57.000Z","size":274,"stargazers_count":68,"open_issues_count":43,"forks_count":9,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-03-25T18:40:35.435Z","etag":null,"topics":["ahk","autohotkey"],"latest_commit_sha":null,"homepage":"https://ahkpm.dev","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/joshuacc.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","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":"2021-12-30T20:35:34.000Z","updated_at":"2025-03-08T22:51:42.000Z","dependencies_parsed_at":"2024-11-25T09:41:47.073Z","dependency_job_id":null,"html_url":"https://github.com/joshuacc/ahkpm","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuacc%2Fahkpm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuacc%2Fahkpm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuacc%2Fahkpm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuacc%2Fahkpm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshuacc","download_url":"https://codeload.github.com/joshuacc/ahkpm/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248490509,"owners_count":21112776,"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":["ahk","autohotkey"],"created_at":"2024-11-25T09:30:46.869Z","updated_at":"2025-04-11T22:34:24.157Z","avatar_url":"https://github.com/joshuacc.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ahkpm - The AutoHotkey Package Manager.\n\n[![GitHub release (latest SemVer)](https://img.shields.io/github/v/release/joshuacc/ahkpm?color=blue\u0026sort=semver)](https://github.com/joshuacc/ahkpm/releases) [![build](https://github.com/joshuacc/ahkpm/workflows/mage/badge.svg?branch=main)](https://github.com/joshuacc/ahkpm/actions/workflows/build.yml?query=branch%3Amain) [![Maintainability](https://api.codeclimate.com/v1/badges/d879856f8da1f8b803a6/maintainability)](https://codeclimate.com/github/joshuacc/ahkpm/maintainability) [![codecov](https://codecov.io/gh/joshuacc/ahkpm/branch/main/graph/badge.svg?token=CHRB93N4U7)](https://codecov.io/gh/joshuacc/ahkpm)\n\n[AutoHotkey][ahk] is a powerful tool for scripting automations on Windows,\nbut managing dependencies for your scripts is painful.\n`ahkpm` brings modern package management to AutoHotkey,\nmaking it easier than ever to automate away the drudgery.\n\n## Documentation\n\nFull documentation can be found at [ahkpm.dev][]\n\n## Commands\n\n```\nUsage:\n  ahkpm [flags]\n  ahkpm [command]\n\nAvailable Commands:\n  cache       Manipulates the packages cache\n  help        Help about any command\n  init        Interactively create an ahkpm.json file in the current directory\n  install     Installs specified package(s). If none, reinstalls all packages in ahkpm.json.\n  list        List all installed packages and their versions\n  update      Update package(s) to the latest version allowed by ahkpm.json\n  version     Bumps the version in ahkpm.json.\n\nFlags:\n  -h, --help      help for ahkpm\n  -v, --version   Display the version of ahkpm and AutoHotkey\n```\n\n## Installation\n\nTo install ahkpm:\n\n1. Go to the [releases][releases] page and find the most recent version.\n2. Download the `ahkpm-{version}.msi` file.\n3. Open it on your Windows machine to launch the ahkpm installer.\n\n## Basic usage\n\n1. Open the command line and navigate to the directory which will contain your AutoHotkey script.\n2. Run `ahkpm init` and answer the prompts to create an `ahkpm.json` file\n3. Run `ahkpm install \u003cpackage\u003e@\u003cversion\u003e`\n   - The package can be any github repository in the form: `github.com/user/repo`, or a shorthand in the form `gh:user/repo`\n   - The version can be any of the following:\n     - A valid [semantic version][semver] such as `1.0.0`\n     - A valid [semantic version range][range] such as `2.x.x`\n     - The prefix `tag:` followed by the name of a tag in the package's repository, such as `tag:beta2`\n     - The prefix `branch:` followed by the name of a branch in the package's repository, such as `branch:main`\n     - The prefix `commit:` followed by the hash of a commit in the package's repository, such as `commit:badcce14f8e828cda4d8ac404a12448700de1441`\n     - Omitting the version is not yet supported\n4. Add `#Include, %A_ScriptDir%` to the top of your script to set the current directory as the context for subsequent includes\n5. Add `#Include, ahkpm-modules\\github.com\\user\\repo\\main-file.ahk` to your script\n6. You can now use the package's functionality within your AutoHotkey script!\n\n## Current limitations\n\nahkpm is being actively developed, but it is still a young project.\nAs a result it has the following limitations.\n\n- It only supports hosting and downloading of packages on GitHub, though other git hosts will be supported in the future.\n- It does not (yet) handle problems with conflicting versions of transitive dependencies\n\nIf you'd like to help remedy these limitations, consider contributing!\n\n## Contributing to ahkpm\n\nSee the [contribution guidelines](./CONTRIBUTING.md)\n\n## File formats\n\n### ahkpm.json\n\nThis file is where the user of ahkpm declares their dependencies and other package data.\n\n```jsonc\n{\n  \"version\": \"0.0.1\",\n  \"description\": \"A brief description of what the package does\",\n  // URL for the package's git repository\n  \"repository\": \"github.com/user/my-project\",\n  // URL for the package's main website\n  \"website\": \"example.com\",\n  // The SPDX License identifier for the package's software license\n  \"license\": \"MIT\",\n  // URL for users to file bugs/issues for the package\n  \"issueTracker\": \"github.com/user/my-project/issues\",\n  // The primary file which users of the package should \"Include\" to use it in their scripts\n  \"include\": \"example.ahk\",\n  // Information about the primary author of the package\n  \"author\": {\n    \"name\": \"joshuacc\",\n    \"email\": \"\",\n    \"website\": \"joshuaclanton.dev\"\n  },\n  // Lists all dependencies along with the required version\n  \"dependencies\": {\n    \"github.com/user/repo1\": \"1.0.0\",\n    \"github.com/user/repo2\": \"tag:beta2\",\n    \"github.com/user/repo3\": \"branch:main\",\n    \"github.com/user/repo4\": \"commit:badcce14f8e828cda4d8ac404a12448700de1441\"\n  }\n}\n```\n\n### ahkpm.lock\n\nThis file is automatically generated by ahkpm and should **not** be edited.\n\n```jsonc\n{\n  \"lockfileVersion\": 1,\n  // This should exactly match ahkpm.json unless ahkpm.json has been manually edited\n  \"dependencies\": {\n    \"github.com/joshuacc/mock-ahkpm-package-a\": \"branch:main\",\n  },\n  \"resolved\": [\n    {\n      \"name\": \"github.com/joshuacc/mock-ahkpm-package-a\",\n      \"version\": \"branch:main\",\n      \"sha\": \"c5b8f8d0d0d1e5c9a5f7f8b8b5c9a5f7f8b8b5c9a\",\n      \"installPath\": \"ahkpm-modules/github.com/joshuacc/mock-ahkpm-package-a\",\n      \"dependencies\": {\n          \"github.com/joshuacc/mock-ahkpm-package-b\": \"^1.0.0\"\n      }\n    },\n    {\n      \"name\": \"github.com/joshuacc/mock-ahkpm-package-b\",\n      \"version\": \"1.0.2\",\n      \"installPath\": \"ahkpm-modules/github.com/joshuacc/mock-ahkpm-package-a/ahkpm-modules/github.com/joshuacc/mock-ahkpm-package-b\",\n      \"sha\": \"c5b8f8d0d0d1e5c9a5f7f8b8b5c9a5f7f8b8b5c9a\",\n      \"dependencies\": {}\n    }\n  ]\n}\n```\n\n[ahk]:https://www.autohotkey.com/\n[semver]:https://semver.org/\n[range]:https://jubianchi.github.io/semver-check/\n[releases]:https://github.com/joshuacc/ahkpm/releases\n[ahkpm.dev]:https://ahkpm.dev\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshuacc%2Fahkpm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshuacc%2Fahkpm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshuacc%2Fahkpm/lists"}