Skip to main content

Agent profile switcher for USER.md, SOUL.md, and AGENTS.md persona sets.

Project description

🎭 dprofile

PyPI version Python versions License: MIT CI

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.

SKILL.md is the primary Agent interface for this project. It defines the workflow and safety rules. The CLI is the secondary deterministic executor and fallback guide.

中文版 (Chinese Version)


✨ Key Features

  • 🤖 Agent-Native: Designed to be called by Agents to self-evolve or switch sub-agent configurations.
  • 🛡️ Safety First: Automatic backups, .dprofile/ state, 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).
  • 📄 Adapter activation: Verified adapters get a rendered copy at each tool's native paths.

🚀 Quick Start

Start by installing the Agent skill. In your Agent, ask:

Install the dprofile skill from github.com/pythias/dprofile.

After the skill is installed, ask the Agent to use a profile:

Use the coding profile for this project with Claude.

The Agent should read SKILL.md, classify the target, and choose the correct operation. For code projects, that usually means applying adapter files through dprofile apply.

The CLI is optional but recommended for deterministic execution:

pip install dprofile -i https://pypi.org/simple

📖 Usage Patterns

1. Global Agent Configs

Agents use dprofile to configure their standard global identities.

# Agent instruction: "Configure my global Claude persona to 'architect'."
dprofile apply architect --ai claude -g

2. Code Projects

Code projects may be opened by many Agents and IDEs, so dprofile targets the current project by default.

It generates and activates Agent-specific files such as CLAUDE.md, .cursor/rules/dprofile.mdc, .github/copilot-instructions.md, GEMINI.md, or AGENTS.md.

Adapters do not all receive the same source layers. Claude and Gemini get the full profile context, while Cursor, Copilot, Codex, and OpenCode default to the operating protocol layer so project instructions stay focused.

# Apply profile to the current project for Claude and Cursor
dprofile apply coding --ai claude,cursor

# Apply to all verified adapters in the current project
dprofile apply coding --ai all

🗃️ 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.
  • linux-expert: Kernel, syscalls, and low-level system mastery.

📝 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 Lists profiles in the library. * reflects .dprofile/state.json in the current directory only; use show -g for global Agent homes.
dprofile apply Apply a profile to the project or global Agent config.
dprofile show Inspect current state or a specific profile.
dprofile diff Compare two profiles side-by-side.
dprofile guide Detailed usage protocol and adapter info.
dprofile validate-profile Validate the structure of a profile.

🤝 Development & Release

Testing

python3 -m unittest discover -s tests -v

Publishing a Release

  1. Update version in pyproject.toml and dprofile/__init__.py.
  2. Tag and push (use the same version as in pyproject.toml):
git tag vX.Y.Z
git push origin main && git push origin vX.Y.Z

Replace X.Y.Z with the version you set in pyproject.toml (for example 0.4.0, tag as v0.4.0).

📄 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

dprofile-0.4.0.tar.gz (34.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dprofile-0.4.0-py3-none-any.whl (50.8 kB view details)

Uploaded Python 3

File details

Details for the file dprofile-0.4.0.tar.gz.

File metadata

  • Download URL: dprofile-0.4.0.tar.gz
  • Upload date:
  • Size: 34.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dprofile-0.4.0.tar.gz
Algorithm Hash digest
SHA256 74126206eb57da0b7c227b34d7e4f7bdf473fc54ab77b249a42071efa0de271b
MD5 49375f3929a7a0b0f21cbf6b14cec1d3
BLAKE2b-256 077ed0b1eb32c7eaa95c97860cbcc1a32fd8a1c9a8a446a5d7d32b68f1e91f02

See more details on using hashes here.

Provenance

The following attestation bundles were made for dprofile-0.4.0.tar.gz:

Publisher: publish.yml on pythias/dprofile

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dprofile-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: dprofile-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 50.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dprofile-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 86ad50d3cc43c85f0b1b835579d0ace3895b4b3fa3042a0918dcb277ec124e55
MD5 b598dd74a698519e8f742b2970cafca1
BLAKE2b-256 3f30befe6e10ce1bce4ee51e97fa2f5373c734b9ff3b086ddda9cc8ec316c014

See more details on using hashes here.

Provenance

The following attestation bundles were made for dprofile-0.4.0-py3-none-any.whl:

Publisher: publish.yml on pythias/dprofile

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page