mcpField
B
bitwarden-personal-profile

bitwarden-personal-profile

github.com/arthurzakirovProductivity1163 installsUpdated 2w ago
Repository

About bitwarden-personal-profile

Bitwarden Personal Profile is a skill for securely loading stable personal facts from a private local profile or Bitwarden Secrets Manager. It helps other skills use only the fields needed while keeping real values out of repositories and logs.

Key features

  1. 01Load normalized profile data
  2. 02Validate profile structure
  3. 03Import and export Bitwarden secrets
  4. 04Select values by output language
  5. 05Keep real values in private local state

Use cases

  1. 01Filling forms with stored personal details
  2. 02Supplying language-appropriate profile fields
  3. 03Moving a profile between local storage and Bitwarden

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/arthurzakirov/agentdesk --skill bitwarden-personal-profile

After installing, type/bitwarden-personal-profilein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

agents/
openai.yaml
references/
bitwarden-secrets-manager-schema.md
language-policy.md
personal-profile.example.yaml
personal-profile.schema.json
scripts/
bitwarden_to_profile.py
init-private-profile.sh
load_profile.py
materialize_profile.py
profile_lib.py
profile_to_bitwarden_import.py
profile_to_bws_secret.py
validate_profile.py

Details

From the project README

Bitwarden Personal Profile

Contract

Use this skill to access stable personal facts from Bitwarden without committing private values.

  • The schema and fake example are bundled in this skill.
  • Real profile values must live outside the repository.
  • Prefer $ADC_PERSONAL_PROFILE_PATH; otherwise use ~/.config/AgentDesk/personal-profile.yaml.
  • Never write real profile values into this skill folder, a public repo, logs, screenshots, or final answers unless the user explicitly asks for those values.

Workflow

  1. Locate the private profile.

    • Use $ADC_PERSONAL_PROFILE_PATH when set.
    • Otherwise use ~/.config/AgentDesk/personal-profile.yaml.
    • If the file is missing and the user uses Bitwarden Secrets Manager, run scripts/bitwarden_to_profile.py.
    • If Bitwarden is unavailable, run scripts/init-private-profile.sh and ask the user to fill the generated local file.
  2. Validate before use.

    • Run scripts/validate_profile.py "$ADC_PERSONAL_PROFILE_PATH" or the default path.
    • Stop if validation fails.
  3. Match the output language to the target form.

    • Read references/language-policy.md.
    • For English forms, prefer en values.
    • For German forms, prefer de values.
    • Keep proper nouns and official names unchanged unless the profile explicitly provides a translation.
  4. Load only the fields needed for the task.

    • Use scripts/load_profile.py --json for normalized JSON.
    • Do not paste the whole profile into conversation when only a few fields are needed.

Commands

Initialize a private local profile from the fake example:

skills/bitwarden-personal-profile/scripts/init-private-profile.sh

Create a Bitwarden Secrets Manager import JSON from a local private profile:

skills/bitwarden-personal-profile/scripts/profile_to_bitwarden_import.py \
  "$HOME/.config/AgentDesk/personal-profile.yaml" \
  --project-name "AgentDesk" \
  --output "$HOME/.config/AgentDesk/bitwarden-personal-profile-import.json"

Create or update the secret directly with bws when the project already exists:

skills/bitwarden-personal-profile/scripts/profile_to_bws_secret.py \
  "$HOME/.config/AgentDesk/personal-profile.yaml" \
  --project-id "$BWS_PERSONAL_PROFILE_PROJECT_ID"

Materialize from Bitwarden Secrets Manager export JSON, a bws secret id, or a project scan:

skills/bitwarden-personal-profile/scripts/bitwarden_to_profile.py \
  --from-bws-project-id "$BWS_PERSONAL_PROFILE_PROJECT_ID" \
  --output "$HOME/.config/AgentDesk/personal-profile.yaml"

Validate:

skills/bitwarden-personal-profile/scripts/validate_profile.py "$HOME/.config/AgentDesk/personal-profile.yaml"

Load normalized JSON:

skills/bitwarden-personal-profile/scripts/load_profile.py --json

Bitwarden Notes

Use Bitwarden Secrets Manager as the private source of truth. Store the profile YAML as a single secret value with key ADC_PERSONAL_PROFILE_YAML.

Before using direct CLI operations, the Bitwarden Secrets Manager CLI must be installed and authenticated:

export BWS_ACCESS_TOKEN="..."

The materialized file is local private state. It is not a Git artifact.

Resources

  • references/personal-profile.schema.json: committed schema.
  • references/personal-profile.example.yaml: committed fake example.
  • references/language-policy.md: language selection rules.
  • references/bitwarden-secrets-manager-schema.md: Bitwarden Secrets Manager mapping.
  • scripts/init-private-profile.sh: create local private profile path from the fake example.
  • scripts/profile_to_bitwarden_import.py: convert personal profile YAML into Bitwarden import JSON.
  • scripts/profile_to_bws_secret.py: create or update the profile secret through bws.
  • scripts/bitwarden_to_profile.py: materialize a profile from Bitwarden import/export JSON or bws.
  • scripts/materialize_profile.py: legacy Password Manager secure-note fallback.
  • scripts/validate_profile.py: validate structure and language maps.
  • scripts/load_profile.py: load the private profile for other skills.

Comments

Markdown supported