embedid


Nameembedid JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryModular watermark protocol for authorship and remix lineage
upload_time2025-08-17 15:55:28
maintainerNone
docs_urlNone
authorJames The Giblet
requires_python>=3.7
licenseNone
keywords watermark authorship remix sovereignty protocol
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 📝 EmbedID README Manifesto — Maverick Edition

![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)  
![Build: Passing](https://img.shields.io/badge/build-passing-brightgreen)  
[![GitHub](https://img.shields.io/badge/GitHub-james--the--giblet%2Fembedid-blue?logo=github)](https://github.com/james-the-giblet/embedid)

Watermark protocol for authorship, remix lineage, and builder sovereignty.  
Modular. Hackable. Unlicensed.

---

## 📦 Install

Install via pip:

```bash
pip install embedid
```

Or for local development:

```bash
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

```bash
embedid add path/to/file.py --author "James The Giblet"
```

### Verify watermark

```bash
embedid verify path/to/file.py
```

---

## 📖 Full CLI Reference

### embedid add

Usage:  
`embedid add <path> [--author <name>] [--timestamp <ISO>] [--manifest <file>]`

Options:  

- `--author`     specify the author string  
- `--timestamp`  override auto-timestamp  
- `--manifest`   output JSON manifest to a file  

#### embedid verify

Usage:  
`embedid verify <path> [--manifest <file>]`

Options:  

- `--manifest`   read 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:

```json
{
  "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

1. Fork the repo  
2. Write `hello_embedid.py`  
3. Watermark it  
4. Verify locally  
5. Push to GitHub and see CI reject on failed verify  

```bash
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 `verify` fail on CRLF files?  
  A: Normalize line endings or use `--manifest` to bypass inline checks.  

- Q: How do I rotate keys?  
  A: Swap out `~/.embedid/keys.json` then run `embedid test`.  

- Q: How to output manifest externally?  
  A: Use `--manifest path/to/out.json` on the `add` or `verify` commands.

---

## 🌐 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:

```markdown
## [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.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "embedid",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "watermark, authorship, remix, sovereignty, protocol",
    "author": "James The Giblet",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/be/d6/d513e8069fbd06f072506c5cbacb8790b9f29c3828b8d43b7230a91575a6/embedid-0.1.0.tar.gz",
    "platform": null,
    "description": "# \ud83d\udcdd EmbedID README Manifesto \u2014 Maverick Edition\r\n\r\n![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)  \r\n![Build: Passing](https://img.shields.io/badge/build-passing-brightgreen)  \r\n[![GitHub](https://img.shields.io/badge/GitHub-james--the--giblet%2Fembedid-blue?logo=github)](https://github.com/james-the-giblet/embedid)\r\n\r\nWatermark protocol for authorship, remix lineage, and builder sovereignty.  \r\nModular. Hackable. Unlicensed.\r\n\r\n---\r\n\r\n## \ud83d\udce6 Install\r\n\r\nInstall via pip:\r\n\r\n```bash\r\npip install embedid\r\n```\r\n\r\nOr for local development:\r\n\r\n```bash\r\npip install -e .\r\n```\r\n\r\n---\r\n\r\n## \u2699\ufe0f Protocol Logic\r\n\r\nEmbedID isn\u2019t a library. It\u2019s a protocol.\r\n\r\nIt encodes authorship into your files\u2014source, manifest, or remix\u2014using tamper-resistant watermarks.\r\n\r\nNo central registry. No hidden handshake. Just raw identity, embedded.\r\n\r\n---\r\n\r\n## \ud83e\uddec Remix Rules\r\n\r\nThis edition is free to fork, override, and mutate.\r\n\r\n- Rewrite the CLI.  \r\n- Swap the manifest logic.  \r\n- Add your own signature scheme.  \r\n- Strip it down or layer it up.\r\n\r\nRemixers aren\u2019t users. They\u2019re sovereign builders.  \r\nDeclare your lineage or burn it. Your call.\r\n\r\n---\r\n\r\n## \ud83e\udeaa Sovereignty Manifest\r\n\r\nEmbedID respects authorship. It doesn\u2019t enforce it.\r\n\r\nYou choose what to watermark.  \r\nYou choose how to verify.  \r\nYou choose when to declare lineage.\r\n\r\nThe protocol is modular because sovereignty demands override.\r\n\r\n---\r\n\r\n## \ud83e\udde8 Usage\r\n\r\n### Add watermark\r\n\r\n```bash\r\nembedid add path/to/file.py --author \"James The Giblet\"\r\n```\r\n\r\n### Verify watermark\r\n\r\n```bash\r\nembedid verify path/to/file.py\r\n```\r\n\r\n---\r\n\r\n## \ud83d\udcd6 Full CLI Reference\r\n\r\n### embedid add\r\n\r\nUsage:  \r\n`embedid add <path> [--author <name>] [--timestamp <ISO>] [--manifest <file>]`\r\n\r\nOptions:  \r\n\r\n- `--author`     specify the author string  \r\n- `--timestamp`  override auto-timestamp  \r\n- `--manifest`   output JSON manifest to a file  \r\n\r\n#### embedid verify\r\n\r\nUsage:  \r\n`embedid verify <path> [--manifest <file>]`\r\n\r\nOptions:  \r\n\r\n- `--manifest`   read manifest from external JSON  \r\n\r\n#### embedid inspect\r\n\r\nUsage:  \r\n`embedid inspect <path>`\r\n\r\nDescription:  \r\nPrints parsed manifest fields (author, date, hash, signature).\r\n\r\n#### embedid remove\r\n\r\nUsage:  \r\n`embedid remove <path>`\r\n\r\nDescription:  \r\nStrips watermark and manifest data from the file.\r\n\r\n#### embedid test\r\n\r\nUsage:  \r\n`embedid test`\r\n\r\nDescription:  \r\nRuns the built-in self-test suite for all CLI surfaces.\r\n\r\n---\r\n\r\n## \ud83d\udcc4 Manifest Schema\r\n\r\nThe JSON schema lets you parse or diff manifests programmatically:\r\n\r\n```json\r\n{\r\n  \"type\": \"object\",\r\n  \"properties\": {\r\n    \"author\":    { \"type\": \"string\" },\r\n    \"timestamp\": { \"type\": \"string\", \"format\": \"date-time\" },\r\n    \"hash\":      { \"type\": \"string\" },\r\n    \"signature\": { \"type\": \"string\" }\r\n  },\r\n  \"required\": [\"author\", \"timestamp\", \"hash\", \"signature\"]\r\n}\r\n```\r\n\r\nYou can embed this inline in your file or as a separate `.manifest.json`.  \r\nSchema versions let you evolve without breaking older badges.\r\n\r\n---\r\n\r\n## \ud83d\ude80 Example Workflows\r\n\r\n1. Fork the repo  \r\n2. Write `hello_embedid.py`  \r\n3. Watermark it  \r\n4. Verify locally  \r\n5. Push to GitHub and see CI reject on failed verify  \r\n\r\n```bash\r\ngit clone https://github.com/james-the-giblet/embedid.git\r\ncd embedid\r\necho 'print(\"hi\")' > hello.py\r\nembedid add hello.py --author \"Alice\"\r\nembedid verify hello.py\r\n```\r\n\r\n---\r\n\r\n## \u2753 Troubleshooting & FAQ\r\n\r\n- Q: Why did `verify` fail on CRLF files?  \r\n  A: Normalize line endings or use `--manifest` to bypass inline checks.  \r\n\r\n- Q: How do I rotate keys?  \r\n  A: Swap out `~/.embedid/keys.json` then run `embedid test`.  \r\n\r\n- Q: How to output manifest externally?  \r\n  A: Use `--manifest path/to/out.json` on the `add` or `verify` commands.\r\n\r\n---\r\n\r\n## \ud83c\udf10 Community & Governance\r\n\r\nJoin the discussion:\r\n\r\n- Discord/Matrix channel (link coming soon)  \r\n- Propose protocol changes via GitHub Issues  \r\n- Follow the Code of Conduct in `CODE_OF_CONDUCT.md`  \r\n- Check the full roadmap in `ROADMAP.md`\r\n\r\n---\r\n\r\n## \ud83d\udcdc Changelog & Releases\r\n\r\nMaintain history in `CHANGELOG.md`. Example entry:\r\n\r\n```markdown\r\n## [0.1.0] \u2013 2025-08-16\r\n### Added\r\n- Basic add/verify/inspect/remove/test\r\n- JSON manifest schema v1.0.0\r\n\r\n### Fixed\r\n- Timestamp formatting bug on Windows PowerShell\r\n```\r\n\r\nSee GitHub Releases for prebuilt wheels and source archives.\r\n\r\n---\r\n\r\n## \ud83d\udd2e Roadmap\r\n\r\n- Signature verification (`v0.2.0`)  \r\n- Remix registry (`v0.3.0`)  \r\n- AI agent deployment (`v0.4.0`)  \r\n- Paid tiers for advanced watermarking (`v1.0.0+`)\r\n\r\n---\r\n\r\nBuilt by James \u2018The Giblet\u2019 Mavric.  \r\nProtocol architect. Brand strategist.  \r\nUnlicensed by design.\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Modular watermark protocol for authorship and remix lineage",
    "version": "0.1.0",
    "project_urls": {
        "Documentation": "https://github.com/james-the-giblet/embedid#readme",
        "Homepage": "https://github.com/james-the-giblet/embedid"
    },
    "split_keywords": [
        "watermark",
        " authorship",
        " remix",
        " sovereignty",
        " protocol"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "d1c49f16c2c323c24c6c5ea1ee53e8680a8f234fe983afbe7d2f8685f0be0106",
                "md5": "7e1e95b08670fd416d4d9397d297462f",
                "sha256": "6a0a88fec146dd390c976098c5cc53dae26bf1eb37105fb0a17550b258624e95"
            },
            "downloads": -1,
            "filename": "embedid-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7e1e95b08670fd416d4d9397d297462f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 7165,
            "upload_time": "2025-08-17T15:55:27",
            "upload_time_iso_8601": "2025-08-17T15:55:27.375777Z",
            "url": "https://files.pythonhosted.org/packages/d1/c4/9f16c2c323c24c6c5ea1ee53e8680a8f234fe983afbe7d2f8685f0be0106/embedid-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bed6d513e8069fbd06f072506c5cbacb8790b9f29c3828b8d43b7230a91575a6",
                "md5": "37cb053f96c25d0bdcfb8f73b88caf4c",
                "sha256": "791b1ba042222d331195d14a22fe5e1ae87e83830a7577dcde303111e0d3c5eb"
            },
            "downloads": -1,
            "filename": "embedid-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "37cb053f96c25d0bdcfb8f73b88caf4c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 8912,
            "upload_time": "2025-08-17T15:55:28",
            "upload_time_iso_8601": "2025-08-17T15:55:28.852928Z",
            "url": "https://files.pythonhosted.org/packages/be/d6/d513e8069fbd06f072506c5cbacb8790b9f29c3828b8d43b7230a91575a6/embedid-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-17 15:55:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "james-the-giblet",
    "github_project": "embedid#readme",
    "github_not_found": true,
    "lcname": "embedid"
}
        
Elapsed time: 1.56018s