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).