Skip to main content

Dosage

CI Maintainability codecov GitHub last commit License pre-commit

Dosage is designed to keep a local copy of specific webcomics and other picture-based content such as Picture of the Day sites. With the dosage commandline script you can get the latest strip of a webcomic, or catch-up to the last strip downloaded, or download a strip for a particular date/index (if the webcomic's site layout allows this).

Multiple webcomics can be downloaded in parallel, making the update of comic strips faster.

Dosage is licensed under the MIT license

Notice

This software is in no way intended to publically "broadcast" comic strips, it is purely for personal use. Please be aware that by making downloaded strips publically available (without the explicit permission of the author) you may be infringing upon various copyrights.

In any case, you should support the authors of the comics you are downloading, either by buying some of their products or even donating them some money since they provide the comics you like and read.

Additionally, Dosage respects (part of) the robots.txt exclusion protocol. This makes it easy for publishers to disallow Dosage access to their site. On the other hand, Dosage is no classic "crawler" oder "bot", so global rules in robots.txt are ignored.

If you are a publisher of comics and don't want Dosage to access your files, either open an issue and request removal (this is the preferred solution, since it documents your wishes to us) or add the following entry to your robots.txt file:

User-agent: Dosage
Disallow: *

Usage

List available comics (ca. 3000 at the moment):

$ dosage --list

Get the latest comic of for example CalvinAndHobbes and save it in the "Comics" directory:

$ dosage CalvinAndHobbes

If you already have downloaded several comics and want to get the latest strip of all of them:

$ dosage @

To help others find good comics, you can vote for your favourite ones:

$ dosage --vote @

For advanced options and features execute dosage --help.

Adult content

Some comics contain adult content and require age confirmation. These comics can only be downloaded by using the --adult option, which confirms that you are old enough to view them.

Installation

Dependencies

Since dosage is written in Python, a Python installation is required: Dosage needs at least Python 3.8. Dosage requires some Python modules from PyPI, so installation with pip is recommended.

Optional dependencies

Some features require optional dependencies, which can be installed by specifying them while installing Dosage:

  • bash - Installs shell completion support using the argcomplete package. You still need to register support in your shell using eval "$(register-python-argcomplete dosage)" or using argcomplete's global completion mode. argcomplete officially only supports bash & zsh, but has limited support for other shells.
  • compression - Enables Brotli & zstandard compression - These modern HTTP compression methods can reduce transferred file size and improve performance.
  • dev - Dependencies only required for running Dosage's test suite.

Using the Windows binary

Windows users can download a complete binary (including Python) from the release page.

Install with pipx

The simplest way to install and upgrade dosage is with pipx. To install the newest stable version with all optional features use:

pipx install dosage[bash,compression]

To install the newest development version, use:

pipx install "dosage[bash,compression] @ git+https://github.com/webcomics/dosage.git"

To upgrade such installations, just run:

pipx upgrade dosage

Installation for development

If you want to run dosage directly from the source code, you should install it in "editable" mode, preferable in a virtual environment:

pip install -e .[bash,compression,dev]

After that, dosage should be available as a normal command.

Code Style

This project currently has a pretty "loose" code style. Please use pre-commit to keep the code style consistent. You can ignore flake8 warnings in code you didn't touch (Set SKIP=flake8 before commiting if pre-commit doesn't let you).

Reporting Bugs

You can report bugs, patches or requests at the GitHub issue tracker - Dosage currently supports a large number of comics and that number grows on a regular basis. If you feel that there are comics that Dosage does not currently support, but should support, please feel free to request them.

Extending Dosage

In order to add a new webcomic, a new module class has to be created in one of the *.py files in one the dosagelib/plugins subdirectory. Look at the documentation for adding modules and at existing module classes for examples.

Test suite status

Dosage has unit tests to ensure code quality. GitHub Actions are used for continuous build and test integration. See the badges at the top of this page for the current status.

Release files for dosage 3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dosage 3.3
File Size Uploaded
dosage-3.3.tar.gz 476.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for dosage 3.3
File Interpreter ABI Platform
dosage-3.3-py3-none-any.whl Python 3 none any Details

Total release size: 669.4 kB

Release files / dosage-3.3.tar.gz

Download URL dosage-3.3.tar.gz
Size 476.4 kB
Tags Source
SHA-256 checksum
How to use checksums
86493c242475716ad82453a549f6641ad487bcf41c43d3bed0c30b7eaf71d2eb
BLAKE2b-256 checksum
How to use checksums
c35e693a7e8c906b87d43ed966a8114dff63d04475155889389dc01fba2e2d01
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 24, 2026.

Transparency log

Release files / dosage-3.3-py3-none-any.whl

Download URL dosage-3.3-py3-none-any.whl
Size 193.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
385eddb2c149340732cb5e335134bc005b4c6705e293ce9819ac65a766c3a500
BLAKE2b-256 checksum
How to use checksums
5ebd827d8b7493eadef02b03d3cfd992db17bde20150c8dd921d480e63618624
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 24, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

3.3 This release

2 release files

3.2

2 release files

3.1

2 release files

3.0

2 release files

2.17

2 release files

2.16

2 release files

2.15

1 release file

2.14

1 release file

2.13

2.12

2.11

2.10

2.9

2.8

2.7

2.6

2.5

2.4

2.3

2.2

2.1

2.0

1.15

1.14

1.13

1.12

1.11

1.10

1.9

1.8

1.7

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page