Content Creator
Content Creator helps people produce consistent, reviewable content without giving an AI control of their identity, opinions, or publication decisions.
Each author works in a small, independent repository containing their voices, agents, learning, drafts, and approved content. This Core repository supplies the reusable workflow, validation, and safety boundaries.
Here, voice means the author's written communication style: observable patterns in how they shape text. It is not a model of the whole person and does not claim to capture their identity, personality, beliefs, expertise, or inner character. Authorised transcripts may provide supporting evidence, but the resulting voice guides text creation.
Read Why not just use a chat app? for the design rationale.
Content Creator Core is distributed through PyPI as
content-creator. Author
workspaces pin an exact package version so installation and upgrades remain
reproducible.
The quickest way to start
Give this request to Codex, Claude Code, or another coding assistant with terminal and filesystem access:
Use Content Creator Core to create a thin content workspace for me. Do not clone or copy Core. Follow its workspace-creation guide, ask me for the author and content choices you need, install the workspace, and validate it.
The assistant will ask about the author, intended content, writing evidence, and model provider. It will then create a separate workspace pinned to an immutable Core release.
Prefer doing it yourself? Follow Create a thin content workspace for the complete terminal instructions and configuration options.
How it works
The author first establishes an approved voice, then uses it in a repeatable content loop. Core's rules remain authoritative underneath every agent.
Voice setup
flowchart TD
A["Create or open an author workspace"] --> B["Inspect persisted state<br/>with Start or Overview"]
B --> C{"Choose a voice route"}
C -->|"Authorised writing"| D["Measure a linguistic signature<br/>and build a voice candidate"]
D --> E["Voice Analyst"]
E --> F["Profile Critic"]
F --> G["Voice Evaluator"]
C -->|"No writing yet"| H["Use the neutral<br/>Clear Professional Starter"]
G --> I{"Human review"}
H --> I
I -->|"Approve"| J["Activate an immutable voice version"]
I -->|"Revise"| C
Content loop
flowchart TD
A["Describe the content in ordinary language"] --> B["Coordinator resolves voice, pack,<br/>provider, perspective, and research route"]
B --> C["Briefing Agent"]
C --> D{"Research required?"}
D -->|"Yes"| E["Researcher and research approval"]
D -->|"No"| F["Writer"]
E --> F
F --> G["Critic and deterministic validators"]
G --> H["Attribution Reviewer when required"]
H --> I{"Human editorial review"}
I -->|"Revise"| B
I -->|"Approve"| J["Save inside the author repository"]
J --> K["Learning Extractor updates<br/>only the active voice's learning"]
K -. "future request" .-> B
Throughout both flows, persisted files—not chat history—hold workflow state. Core does not silently change a voice or perspective, invent identity or evidence, add research to a no-research route, or publish externally.
1. Create an author workspace
The generated repository belongs to the author. It keeps their editorial material separate from the reusable engine and can have its own writer, researcher, critic, policies, and learning.
Core is installed as a versioned dependency; its source code is not copied into each content repository.
2. Choose a voice route
The author chooses one of two starting points:
- Use previous writing to build a reviewable voice candidate from authorised documents or URLs.
- Start without previous writing using the neutral Clear Professional Starter, which does not claim to imitate the author.
No candidate becomes active without human approval. A new subject also does not automatically require a new voice; it may be better represented as a separately governed perspective.
See Voice onboarding for the commands and lifecycle, or How voice is derived for the underlying analysis and safeguards.
Statistical voice evidence
For a source-derived voice, Core calculates a deterministic linguistic signature from the authorised corpus. It records per-source measurements and descriptive statistics for rhythm, structure, stance, punctuation, and lexical diversity, separated by register where possible. These measurements are evidence for human review: they are not generation targets, personality inferences, forensic authorship attribution, or proof that a feature is unique to the author.
Read the statistical and linguistic voice
framework, or inspect a built
candidate with content-creator voice signature <voice-id>.
Core can also calculate an optional statistical_voice_score for a draft using
either deterministic distribution comparison or an explicitly trained ML
classifier. Scoring is disabled by default and remains critic-only advisory
evidence: it is not an authorship probability, writing target, quality-gate
input, or publication gate. Automatic workflow scoring additionally requires
an eligible long-form content pack. The explicit voice score command remains
available for deliberate, ad hoc assessment of any sufficiently long text.
3. Ask for content naturally
Open the author workspace in a supported coding assistant and describe what you need:
Write a short LinkedIn post explaining why calculus matters to sixth-form students. No external research is required.
The Content Creator Coordinator reads the workspace state, proposes the appropriate voice and format, follows the required research and review checkpoints, and preserves the run artifacts.
Automation and agent hosts can attach an --idempotency-key to a run. An
equivalent retry returns the existing run_id and state instead of executing
the content route twice; conflicting reuse fails safely. Intentional revisions
use a new key plus --parent-run.
The result always comes back for human review. “Publish” means saving an approved copy inside the author repository; Core does not post to external platforms.
Recovered Core diagnostics remain out of the editorial conversation until the author approves the piece. At that publication boundary, Core presents one sanitised, consolidated support candidate and keeps external issue submission under explicit human control. Fatal Core diagnostics are surfaced immediately.
See Content Creator Coordinator for conversational and direct terminal use.
What the author controls
The author workspace owns:
- voice evidence, candidates, approvals, and immutable versions;
- perspectives and their provenance;
- repository-specific agents and editorial policies;
- repository-wide and voice-scoped learning;
- research, drafts, critiques, and run history; and
- approved content.
Core owns the reusable orchestration, schemas, provider adapters, validation, checkpoints, safety rules, prompt composition, and workspace generator.
Important boundaries
- The author remains the final editorial authority.
- Core does not invent personal experience, beliefs, facts, or voice evidence.
- Voices and learning are isolated from one another.
- No-research requests remain no-research.
- Voice activation and repository publication require explicit approval.
- External publication is not supported.
Guides
Use the task-oriented documentation index to create a workspace, manage a voice, create content, maintain a downstream repository, or develop Core. Detailed terminal procedures remain in the focused guides.
Work on Content Creator Core
Clone this repository only when you want to inspect or change the reusable engine. The Core development guide covers installation, architecture, testing, and releases. The engineering standards define the required quality, compatibility, security, and release controls.
External code contributions are not currently accepted. Bug reports and feature requests are welcome through GitHub Issues; read Contributing first. Report security-sensitive issues through the private process in the security policy.
Licence
Content Creator is free and open-source software licensed under the
GNU Affero General Public License, version 3 or later
(AGPL-3.0-or-later). Commercial use is permitted subject to the licence
terms. See Licensing for a plain-language overview.
Copyright © 2026 Bharath Vadhoola
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 content_creator-0.11.0.tar.gz.
File metadata
- Download URL: content_creator-0.11.0.tar.gz
- Upload date:
- Size: 169.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b4e95b66caee38e65c0acdc0ab6164ec8ddbcfba51e576834d7ce5864e5eeb1
|
|
| MD5 |
03ac0ec94a4717c141af84567390ff2b
|
|
| BLAKE2b-256 |
898b16b9ee64267472e264e9704db35ba6fbcd64ce475e228854f3c0815d049e
|
Provenance
The following attestation bundles were made for content_creator-0.11.0.tar.gz:
Publisher:
release.yml on vadhoob90/Content_Creator_Core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
content_creator-0.11.0.tar.gz -
Subject digest:
8b4e95b66caee38e65c0acdc0ab6164ec8ddbcfba51e576834d7ce5864e5eeb1 - Sigstore transparency entry: 2322593001
- Sigstore integration time:
-
Permalink:
vadhoob90/Content_Creator_Core@1bd8b90bcb14c84079393cece23da5b995c534cc -
Branch / Tag:
refs/tags/v0.11.0 - Owner: https://github.com/vadhoob90
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1bd8b90bcb14c84079393cece23da5b995c534cc -
Trigger Event:
push
-
Statement type:
File details
Details for the file content_creator-0.11.0-py3-none-any.whl.
File metadata
- Download URL: content_creator-0.11.0-py3-none-any.whl
- Upload date:
- Size: 162.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bc9edc3370791385f63566cef1bb198719fdb1887490c86829b3d133e29e01d
|
|
| MD5 |
43164bd93c1a78810e1b7c85c99c5eee
|
|
| BLAKE2b-256 |
a47b5ff7bac07777aa905c791f815ba311a4496d4afbb5a883dba70efc789aac
|
Provenance
The following attestation bundles were made for content_creator-0.11.0-py3-none-any.whl:
Publisher:
release.yml on vadhoob90/Content_Creator_Core
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
content_creator-0.11.0-py3-none-any.whl -
Subject digest:
2bc9edc3370791385f63566cef1bb198719fdb1887490c86829b3d133e29e01d - Sigstore transparency entry: 2322593201
- Sigstore integration time:
-
Permalink:
vadhoob90/Content_Creator_Core@1bd8b90bcb14c84079393cece23da5b995c534cc -
Branch / Tag:
refs/tags/v0.11.0 - Owner: https://github.com/vadhoob90
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@1bd8b90bcb14c84079393cece23da5b995c534cc -
Trigger Event:
push
-
Statement type: