💮 amazing QRCode generator (supporting animated gif) - amazing 二维码生成器(支持 gif 动态图片二维码)
Python
10,832
133 commits
updated Sep 17, 2026
Python QR Code Generator
Generate common qr-code, artistic qr-code (black & white or colorized), animated qr-code (black & white or colorized).







pip install amzqr
To use amazing-qr inside an agent, you can either install the agent skill or connect the MCP server.
x-hw/skills repository ships the generate-amazing-qr-code skill, which teaches AI agents to generate QR codes with the amzqr CLI. Install it into your agent with:
npx skills add x-hw/skills --skill generate-amazing-qr-code
For MCP-compatible agents, use x-hw/amzqr-mcp.
# summary
amzqr Words
[-v {1,2,3,...,40}]
[-l {L,M,Q,H}]
[-n output-filename]
[-d output-directory]
[-p picture_file]
[-c]
[-con contrast]
[-bri brightness]
[-V]
Words, -v, -l, -n, -d-p, -c, -con, -bri
#1 Words
amzqr https://github.com
#2 -v, -l
amzqr https://github.com -v 10 -l Q
The default size of QR-Code depends both on the numbers of words you input and the level, while the default level (Error Correction Level) is H (the highest).
Customize: If you want to control the size and the error-correction-level, use the -v and -l arguments.
-v representing the length is from a minimum of 1 to a maximum of 40.
-l representing the error correction level is one of L, M, Q and H, where L is the lowest level and H is the highest.
#3 -n, -d
amzqr https://github.com -n github_qr.jpg -d .../paths/
The default output-filename is 'qrcode.png', while the default output-directory is current directory.
Customize: You can name the output-file and decide the output-directory. Notice that if the name is as same as a existing file, the old one will be deleted.
-n representing the output-filename could be in the format one of .jpg, .png ,.bmp ,.gif .
-d means directory.


#1 -p
amzqr https://github.com -p github.jpg
-p is to combine the QR-Code with the following picture which is in the same directory as the program. The resulting picture is black and white by default.#2 -c
amzqr https://github.com -p github.jpg -c
-c is to make the resulting picture colorized.#3 -con, -bri
amzqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6
The -con flag changes the contrast of the picture - a low number corresponds to low contrast and a high number to high contrast. Default: 1.0.
The -bri flag changes the brightness and the parameter values work the same as those for -con. Default: 1.0.


The only difference from Artistic QR-Code mentioned above is that you should input an image file in the .gif format. The you can get your black-and-white or colorful qr-code. Remember that when you use -n to customize the output-filename, then the output-filename must end by .gif.
from amzqr import amzqr
version, level, qr_name = amzqr.run(
words,
version=1,
level="H",
picture=None,
colorized=False,
contrast=1.0,
brightness=1.0,
save_name=None,
save_dir=os.getcwd(),
)
details about each parameter are as mentioned above
# help(amzqr)
Positional parameter
words: str
Optional parameters
version: int, from 1 to 40
level: str, just one of ('L','M','Q','H')
picture: str, a filename of a image
colorized: bool
contrast: float
brightness: float
save_name: str, the output filename like 'example.png'
save_dir: str, the output directory
After installation, just ask your agent to generate a QR code and it will pick up the skill or mcp server automatically.
Use a nearly square picture instead of a rectangle one.
If the size of the picture is large, you should also choose a rightly large -v instead of using the default one.
If part of the picture is transparent, the qr code will look like: 
You can change the transparent layer to white, and then it will look like: 
Numbers: 0~9
Letters: a~z, A~Z
Common punctuations:
· , . : ; + - * / \ ~ ! @ # $ % ^ & ` ' = < > [ ] ( ) ? _ { } | and (space)
Since the GitHub Sponsors is unavailable in China yet...
🎉🎉🎉 Thanks for your support. 🎉🎉🎉
(top 24 of 35)
5,481 followers · starred Sep 2016
1,437 followers · starred Sep 2016
91 followers · starred Sep 2016
656 followers · starred Oct 2024
💮 amazing QRCode generator (supporting animated gif) - amazing 二维码生成器(支持 gif 动态图片二维码)
Python
10,832
133 commits
updated Sep 17, 2026
Python QR Code Generator
Generate common qr-code, artistic qr-code (black & white or colorized), animated qr-code (black & white or colorized).







pip install amzqr
To use amazing-qr inside an agent, you can either install the agent skill or connect the MCP server.
x-hw/skills repository ships the generate-amazing-qr-code skill, which teaches AI agents to generate QR codes with the amzqr CLI. Install it into your agent with:
npx skills add x-hw/skills --skill generate-amazing-qr-code
For MCP-compatible agents, use x-hw/amzqr-mcp.
# summary
amzqr Words
[-v {1,2,3,...,40}]
[-l {L,M,Q,H}]
[-n output-filename]
[-d output-directory]
[-p picture_file]
[-c]
[-con contrast]
[-bri brightness]
[-V]
Words, -v, -l, -n, -d-p, -c, -con, -bri
#1 Words
amzqr https://github.com
#2 -v, -l
amzqr https://github.com -v 10 -l Q
The default size of QR-Code depends both on the numbers of words you input and the level, while the default level (Error Correction Level) is H (the highest).
Customize: If you want to control the size and the error-correction-level, use the -v and -l arguments.
-v representing the length is from a minimum of 1 to a maximum of 40.
-l representing the error correction level is one of L, M, Q and H, where L is the lowest level and H is the highest.
#3 -n, -d
amzqr https://github.com -n github_qr.jpg -d .../paths/
The default output-filename is 'qrcode.png', while the default output-directory is current directory.
Customize: You can name the output-file and decide the output-directory. Notice that if the name is as same as a existing file, the old one will be deleted.
-n representing the output-filename could be in the format one of .jpg, .png ,.bmp ,.gif .
-d means directory.


#1 -p
amzqr https://github.com -p github.jpg
-p is to combine the QR-Code with the following picture which is in the same directory as the program. The resulting picture is black and white by default.#2 -c
amzqr https://github.com -p github.jpg -c
-c is to make the resulting picture colorized.#3 -con, -bri
amzqr https://github.com -p github.jpg [-c] -con 1.5 -bri 1.6
The -con flag changes the contrast of the picture - a low number corresponds to low contrast and a high number to high contrast. Default: 1.0.
The -bri flag changes the brightness and the parameter values work the same as those for -con. Default: 1.0.


The only difference from Artistic QR-Code mentioned above is that you should input an image file in the .gif format. The you can get your black-and-white or colorful qr-code. Remember that when you use -n to customize the output-filename, then the output-filename must end by .gif.
from amzqr import amzqr
version, level, qr_name = amzqr.run(
words,
version=1,
level="H",
picture=None,
colorized=False,
contrast=1.0,
brightness=1.0,
save_name=None,
save_dir=os.getcwd(),
)
details about each parameter are as mentioned above
# help(amzqr)
Positional parameter
words: str
Optional parameters
version: int, from 1 to 40
level: str, just one of ('L','M','Q','H')
picture: str, a filename of a image
colorized: bool
contrast: float
brightness: float
save_name: str, the output filename like 'example.png'
save_dir: str, the output directory
After installation, just ask your agent to generate a QR code and it will pick up the skill or mcp server automatically.
Use a nearly square picture instead of a rectangle one.
If the size of the picture is large, you should also choose a rightly large -v instead of using the default one.
If part of the picture is transparent, the qr code will look like: 
You can change the transparent layer to white, and then it will look like: 
Numbers: 0~9
Letters: a~z, A~Z
Common punctuations:
· , . : ; + - * / \ ~ ! @ # $ % ^ & ` ' = < > [ ] ( ) ? _ { } | and (space)
Since the GitHub Sponsors is unavailable in China yet...
🎉🎉🎉 Thanks for your support. 🎉🎉🎉
(top 24 of 35)
5,481 followers · starred Sep 2016
1,437 followers · starred Sep 2016
91 followers · starred Sep 2016
656 followers · starred Oct 2024