The package metadata (manifest) format is a JSON document. The package repository (aka database) format is a JSON array of package metadata documents.
All attributes are mandatory, unless otherwise stated.
| Attribute | Description |
|---|---|
| id | A short name used for identification purposes (Should be a valid AutoHotkey identifier) |
| version | Package version (must follow AHK-flavored Semantic Versioning) |
| type | Package type (lib, tool, other) |
| ahkbranch | AutoHotkey branch the package is developed for (v1.1, v2-alpha, ahk_h, ...) |
| ahkversion | Version number of AutoHotkey the package was developed with (Internal, Automatic) |
| ahkflavour | Comma-separated list of supported AutoHotkey flavours (a32, u32, u64) |
| required | Comma-separated list of dependencies' package identifiers (leave empty if none) |
| name | The human-friendly name of the package |
| description | Description of the package (Optional, Recommended) |
| author | The author(s) of the package |
| license | (Optional) Name of the license under which the package is released |
| tags | Comma-separated tags (Optional, Recommended) |
| forumurl | (Optional, Recommended) ahkscript.org forum topic URL |
| screenshot | (Optional) URL of the screenshot image to be displayed |
Licenses : packages submitted to ahkscript.org without the license attribute filled in are assumed to be released under the ASPDM Default Package License (ADPL).
| Attribute | Description |
|---|---|
| isstdlib | (Internal, Moderated) True if the package has been selected to be part of the official StdLib distribution |
| Categories | ||
|---|---|---|
| Arrays | Graphics | Network |
| Call | Gui | Objects |
| COM | INI | Parser |
| Console | Hardware | Process |
| Control | Hash | Regular Expressions |
| Dynamic | Hotstrings | Sound |
| Database | JSON | Strings |
| DateTime | Keyboard | System |
| Editor | Math | Text |
| Encryption | Media | Variables |
| File | Memory | Window |
| FileSystem | Menu | YAML |
| Format | MS Windows | Other |
Library packages should have a standard package structure consisting of the following folders:
Lib\(Mandatory) : StdLib filesDoc\: Documentation- Root folder : Examples, etc.
Note: When installing a package into a StdLib folder, the files in the package's Lib\ folder would be copied to it.
Tool/Other packages should have a standard package structure consisting of the following:
Install.ahk(Mandatory) : Executed on package installationRemove.ahk(Mandatory) : Executed on package removalExecute.ahk(Mandatory) : Execute the toolDoc\: Documentation- Root folder : Examples, etc.
The packages will have the .ahkp file extension.
The compression format is LZNT (a.k.a LZ compression).
The Magic Number is AHKPKG00.
The uncompressed JSON metadata is stored at offset 0xC, with its string length stored as a UInt at offset 0x8 (Right after the magic number).