Modular watermark protocol for authorship and remix lineage
Project description
📝 EmbedID README Manifesto — Maverick Edition
Watermark protocol for authorship, remix lineage, and builder sovereignty.
Modular. Hackable. Unlicensed.
📦 Install
Install via pip:
pip install embedid
Or for local development:
pip install -e .
⚙️ Protocol Logic
EmbedID isn’t a library. It’s a protocol.
It encodes authorship into your files—source, manifest, or remix—using tamper-resistant watermarks.
No central registry. No hidden handshake. Just raw identity, embedded.
🧬 Remix Rules
This edition is free to fork, override, and mutate.
- Rewrite the CLI.
- Swap the manifest logic.
- Add your own signature scheme.
- Strip it down or layer it up.
Remixers aren’t users. They’re sovereign builders.
Declare your lineage or burn it. Your call.
🪪 Sovereignty Manifest
EmbedID respects authorship. It doesn’t enforce it.
You choose what to watermark.
You choose how to verify.
You choose when to declare lineage.
The protocol is modular because sovereignty demands override.
🧨 Usage
Add watermark
embedid add path/to/file.py --author "James The Giblet"
Verify watermark
embedid verify path/to/file.py
📖 Full CLI Reference
embedid add
Usage:
embedid add <path> [--author <name>] [--timestamp <ISO>] [--manifest <file>]
Options:
--authorspecify the author string--timestampoverride auto-timestamp--manifestoutput JSON manifest to a file
embedid verify
Usage:
embedid verify <path> [--manifest <file>]
Options:
--manifestread manifest from external JSON
embedid inspect
Usage:
embedid inspect <path>
Description:
Prints parsed manifest fields (author, date, hash, signature).
embedid remove
Usage:
embedid remove <path>
Description:
Strips watermark and manifest data from the file.
embedid test
Usage:
embedid test
Description:
Runs the built-in self-test suite for all CLI surfaces.
📄 Manifest Schema
The JSON schema lets you parse or diff manifests programmatically:
{
"type": "object",
"properties": {
"author": { "type": "string" },
"timestamp": { "type": "string", "format": "date-time" },
"hash": { "type": "string" },
"signature": { "type": "string" }
},
"required": ["author", "timestamp", "hash", "signature"]
}
You can embed this inline in your file or as a separate .manifest.json.
Schema versions let you evolve without breaking older badges.
🚀 Example Workflows
- Fork the repo
- Write
hello_embedid.py - Watermark it
- Verify locally
- Push to GitHub and see CI reject on failed verify
git clone https://github.com/james-the-giblet/embedid.git
cd embedid
echo 'print("hi")' > hello.py
embedid add hello.py --author "Alice"
embedid verify hello.py
❓ Troubleshooting & FAQ
-
Q: Why did
verifyfail on CRLF files?
A: Normalize line endings or use--manifestto bypass inline checks. -
Q: How do I rotate keys?
A: Swap out~/.embedid/keys.jsonthen runembedid test. -
Q: How to output manifest externally?
A: Use--manifest path/to/out.jsonon theaddorverifycommands.
🌐 Community & Governance
Join the discussion:
- Discord/Matrix channel (link coming soon)
- Propose protocol changes via GitHub Issues
- Follow the Code of Conduct in
CODE_OF_CONDUCT.md - Check the full roadmap in
ROADMAP.md
📜 Changelog & Releases
Maintain history in CHANGELOG.md. Example entry:
## [0.1.0] – 2025-08-16
### Added
- Basic add/verify/inspect/remove/test
- JSON manifest schema v1.0.0
### Fixed
- Timestamp formatting bug on Windows PowerShell
See GitHub Releases for prebuilt wheels and source archives.
🔮 Roadmap
- Signature verification (
v0.2.0) - Remix registry (
v0.3.0) - AI agent deployment (
v0.4.0) - Paid tiers for advanced watermarking (
v1.0.0+)
Built by James ‘The Giblet’ Mavric.
Protocol architect. Brand strategist.
Unlicensed by design.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file embedid-0.1.0.tar.gz.
File metadata
- Download URL: embedid-0.1.0.tar.gz
- Upload date:
- Size: 8.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
791b1ba042222d331195d14a22fe5e1ae87e83830a7577dcde303111e0d3c5eb
|
|
| MD5 |
37cb053f96c25d0bdcfb8f73b88caf4c
|
|
| BLAKE2b-256 |
bed6d513e8069fbd06f072506c5cbacb8790b9f29c3828b8d43b7230a91575a6
|
File details
Details for the file embedid-0.1.0-py3-none-any.whl.
File metadata
- Download URL: embedid-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a0a88fec146dd390c976098c5cc53dae26bf1eb37105fb0a17550b258624e95
|
|
| MD5 |
7e1e95b08670fd416d4d9397d297462f
|
|
| BLAKE2b-256 |
d1c49f16c2c323c24c6c5ea1ee53e8680a8f234fe983afbe7d2f8685f0be0106
|