Agent profile switcher for USER.md, SOUL.md, and AGENTS.md persona sets.
Project description
🎭 dprofile
Instant Persona Switching for AI Agents.
dprofile is a safe, deterministic profile switcher designed for the modern Agent era. It treats persona sets (USER.md, SOUL.md, AGENTS.md) as atomic units, allowing both humans and AI Agents to swap identities in milliseconds.
✨ Key Features
- 🤖 Agent-Native: Designed to be called by Agents to self-evolve or switch sub-agent configurations.
- 🛡️ Safety First: Automatic backups, state tracking, and validation of target directories.
- 🏗️ The Three-Layer Model:
USER.md: Who you are helping (Background & Preferences).SOUL.md: Who you are (Identity & Values).AGENTS.md: How you work (Tools & Protocols).
- 🔗 Hybrid Modes: Switch via Symlinks (for live updates) or Copy (for portable exports).
🚀 Install
pip install dprofile
📖 Usage Patterns
1. Agent-Driven (Automation)
Agents use dprofile to autonomously switch their own identity or configure specialized workers.
# Agent instruction: "Switch my persona to 'architect' in the current workspace."
dprofile switch architect --target-dir .
2. Manual CLI (Human)
Developers can manage agent personas across projects with zero friction.
# List all available personas
dprofile list
# Switch a local project config to 'coding' mode
dprofile switch coding --target-dir ./my-project/.agent-config
🗃️ Bundled Profiles
dprofile comes with 25+ production-ready personas categorized for quick access:
🏗️ Engineering & AI
architect: System boundaries and engineering decisions.coding: Direct implementation and fixes.reviewer: Risk-first feedback and code quality.debugger: Hypothesis-driven root cause analysis.ops: SRE, production, and infrastructure.ai-infra: GPUs, vLLM, MCP, and inference optimization.ml-researcher: Model experiments and benchmarks.
📝 Content & Design
writer: Long-form content and editing.copywriter: Conversion, headlines, and clarity.social-media: Platform-native posts (X, Red, Weibo).designer: UI systems and visual design.
🚀 Strategy & Product
product-manager: Scenarios, scope, and PRDs.founder-mode: High-leverage judgment and growth.sales: Persuasion, demos, and follow-ups.customer-support: Resolution and FAQ management.
🧠 Critical Thinking & Utility
slow-thinker: Deep reasoning and alternatives.challenger: Rigorous pushback and assumption testing.minimalist: Extreme conciseness.prompt-engineer: Agent workflows and tool routing.executor: Direct task execution.completionist: End-to-end delivery with tests/docs.
🛠️ Commands
| Command | Description |
|---|---|
dprofile list |
List all available profiles in the library. |
dprofile switch |
Switch target directory to a specific profile. |
dprofile show |
Inspect current state or a specific profile. |
dprofile diff |
Compare two profiles side-by-side. |
dprofile validate-target |
Ensure a directory is safe for profile management. |
🤝 Development & Release
Testing
python3 -m unittest discover -s tests -v
Publishing a Release
- Update version in
pyproject.tomlandagent_profile/__init__.py. - Create and push a tag:
git tag v0.1.1 git push origin main && git push origin v0.1.1
📄 License
MIT
Project details
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 dprofile-0.1.2.tar.gz.
File metadata
- Download URL: dprofile-0.1.2.tar.gz
- Upload date:
- Size: 24.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
563eae05e7ae653f5c62f1d169d8567c2e0c3c3db8cd9112d693de22f222d2ad
|
|
| MD5 |
5a13f498336d697444faf75962201f7d
|
|
| BLAKE2b-256 |
1704e5e87b1b8166b33b1e54a2071c12191beecdef48170ca9695639e4aca60b
|
Provenance
The following attestation bundles were made for dprofile-0.1.2.tar.gz:
Publisher:
publish.yml on pythias/dprofile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dprofile-0.1.2.tar.gz -
Subject digest:
563eae05e7ae653f5c62f1d169d8567c2e0c3c3db8cd9112d693de22f222d2ad - Sigstore transparency entry: 1535771592
- Sigstore integration time:
-
Permalink:
pythias/dprofile@949a6e95fcda940355f00d83669d4d7ddc31b792 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/pythias
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@949a6e95fcda940355f00d83669d4d7ddc31b792 -
Trigger Event:
push
-
Statement type:
File details
Details for the file dprofile-0.1.2-py3-none-any.whl.
File metadata
- Download URL: dprofile-0.1.2-py3-none-any.whl
- Upload date:
- Size: 43.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bf984e44e190b50c8272a67067f3c0d8279ad905ab1efe790a59242290c94014
|
|
| MD5 |
e9ed72748ced2e36145f0347da1144b5
|
|
| BLAKE2b-256 |
0e4fda073ae3412a9c0bbeb26f39cd1ffb22fde44ae0dc17512a46771f368275
|
Provenance
The following attestation bundles were made for dprofile-0.1.2-py3-none-any.whl:
Publisher:
publish.yml on pythias/dprofile
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dprofile-0.1.2-py3-none-any.whl -
Subject digest:
bf984e44e190b50c8272a67067f3c0d8279ad905ab1efe790a59242290c94014 - Sigstore transparency entry: 1535771811
- Sigstore integration time:
-
Permalink:
pythias/dprofile@949a6e95fcda940355f00d83669d4d7ddc31b792 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/pythias
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@949a6e95fcda940355f00d83669d4d7ddc31b792 -
Trigger Event:
push
-
Statement type: