kantian.dev
v1.0 · 2026
six texts
three traditions
one condition

SPDX: none, by design
OSI: no, on purpose

Smuggle categorical imperative into the supply chain.

There's an inherent ethical tension in sharing code. A developer releases their work for anyone to use, yet cannot control what monster it might one day become a limb of.

A simple software license could change the terms. A license you could drop into your repository, just like MIT or GPL. A license that would ban nothing: anyone could use, modify, sell, or embed your code. There would be just one condition: if that code is used in a system that assesses or monitors people, the operator must publicly justify that use in light of the license's ethical principles.

That's the very idea embodied in the Kantian licenses.

Rationale

The problem

Code travels downstream. Your library could be running inside a credit-scoring engine, a tenant-screening platform, or workplace surveillance software. Under MIT, operators have no obligation to disclose that use—to you or to the people being assessed.

The usual response is a so-called "ethical license" that prohibits uses you consider unacceptable. But there's a catch: prohibition makes the software non-free, is difficult to enforce, and grants the developer the authority to decide what everyone downstream may or may not do.

The bet

By contrast, the Kantian licenses never say no. Rather than letting developers decide what's right or wrong, they shift the burden of justification to those who run the systems.

There are three ethical traditions to choose from: Kant's categorical imperative, Aristotle's virtue ethics, and Mill's utilitarianism. According to the ethical principles of the chosen license, operators must make their case in public. Not to the developer—to everyone affected.

Silence or a knowingly false statement terminates the relevant rights. Continued use may then constitute copyright infringement, a violation courts reliably redress.

Sunlight, with teeth.

How it works
1

The license travels with the code. Anyone who uses or redistributes it must preserve the license and notices, and make its presence discoverable. For ordinary library use, no ethical declaration is required.

2

Deployment triggers the condition. Once the code becomes part of a system that affects people, the obligation falls on its operator. Even if the library is buried five dependencies deep.

3

The whole system goes on record. The operator must publish an honest, plain-language declaration covering the entire deployment, not just the licensed code. It must remain public and be updated whenever the system's impact on people materially changes.

What it produces

two deployments,
one condition
Published declarationKPL-1.0 · §3.3 + §3.5

"We score incoming mail by spam probability and sort it out of the inbox, and we hold that every mail provider may do the same."

  • §3.5(a) Self-exceptionFiltering does not depend on other providers abstaining. It works best when every provider filters.
  • §3.5(b) Role inversionOur own outgoing mail is scored by the same rules, with the same appeals process.
  • §3.5(c) Ablest opponent"False positives silence honest senders unheard." Answer: quarantine with notice and human review, never silent deletion.

Quillpost Mail Co. — posted 2026-04-14 · standing

Survives all three tests. An honest deployment answers §3.5 in an afternoon — and the answers are now on the record, quotable by every sender it filters and every regulator who asks.

Draft declarationKPL-1.0 · §3.3 + §3.5

"We score employees by keystroke rate and screenshot sampling, and the score informs termination — and we hold that every employer may watch the same way."

  • §3.5(a) Self-exceptionThe practice does not depend on other employers abstaining.
  • §3.5(b) Role inversion — rejectedOur executives would not accept being scored by keystrokes. We conclude nothing from that.
  • §3.5(c) Ablest opponent — unanswered"The score measures motion, not work, and trains people to perform activity." Answer: none we can offer.

Tallyfloor Workplace Analytics — internal draft · legal advises against publication

Convicts itself. The KPL forbids nothing here. It demands the three answers — and written truthfully, they read as an indictment the operator signs. Publish that; or publish a flattering version and lose the license under §5, every further run copyright infringement; or stop. No committee needed — the document does the judging.

Pick a tradition

Each license requires the operator to answer a different ethical question in public. No background in philosophy is needed: each text defines its own terms. Pick the question you'd most want to ask those who operate a system aimed at you.

Showing: strict · lesser — lesser variants can be combined with GPL code

KPL-1.0 read the text →

Kantian Public License

after Kant's Groundwork

What rule are you acting on — and would you accept everyone in your position adopting it? A rule that only works as long as others don't follow it fails the test.

VPL-1.0 read the text →

Virtue Public License

after Aristotle's Nicomachean Ethics

What does running this system make of the people it touches — and of those who run it? You become what you repeatedly do; so does a company.

UPL-1.0 read the text →

Utilitarian Public License

after Mill's Utilitarianism

What good does your system do, what harm are you willing to accept for it, and why is the trade-off worth it — for everyone affected, not just for you?

Strict or lesser: the strict version keeps its condition in force all the way downstream. That makes it incompatible with the GPL and AGPL, which forbid adding conditions of their own. In code combined with GPL, the lesser version turns its condition into a request rather than a requirement, so the combined work can still be distributed without breaking the GPL. If you don't know which you need, take the strict one.

Before you commit

Two honest warnings

The Kantian licenses deliberately fall outside the official Open Source Definition: their conditions extend to the entire deployed system and are triggered at runtime.

Large companies may treat code under these licenses as they do AGPL: not by lying, but by banning it from their dependency lists.

If that's a dealbreaker, these licenses aren't for you. If that's the whole point, welcome.

Go deeper

In depth explores how the six licenses are structured, whether declaration-based licensing can work at all, and four philosophical traditions still awaiting their own licenses: Levinas, Kropotkin, Spinoza, and ethics of care.

It also examines related projects, including firstdonoharm.dev, the JSON License, and ethicalsource.dev.