This file provides guidance to Claude Code when working with this repository.
This is a Claude Code plugin called "pearpass-plugin" that helps developers work with PearPass Desktop - a secure, distributed password manager built with React Native, Expo, and end-to-end encryption using sodium-native (libsodium).
pearpass-plugin/
├── plugin.json # Plugin manifest
├── .claude-plugin/
│ └── marketplace.json # Marketplace definition for installation
├── skills/ # 5 skills for development guidance
│ ├── pearpass-dev.md # Development workflow
│ ├── pearpass-security.md # Security review patterns
│ ├── pearpass-architecture.md # Codebase architecture
│ ├── pearpass-test.md # Testing patterns
│ └── pearpass-pear.md # Pear Runtime specifics
├── commands/ # 6 slash commands
│ ├── pearpass-dev.md # Start development server
│ ├── pearpass-build.md # Build for iOS/Android
│ ├── pearpass-test.md # Run test suites
│ ├── pearpass-lint.md # Code linting
│ ├── pearpass-i18n.md # Internationalization
│ └── pearpass-security-audit.md # Security checks
├── agents/ # 4 specialized agents
│ ├── security-reviewer.md # Audit encryption and security
│ ├── code-explorer.md # Navigate codebase architecture
│ ├── component-dev.md # React component development
│ └── test-generator.md # Generate tests
├── hooks/ # 4 automated hooks
│ ├── security-crypto-warning.md # Warn on crypto file edits
│ ├── security-secrets-check.md # Check for hardcoded secrets
│ ├── quality-i18n-reminder.md # i18n reminders
│ └── quality-test-reminder.md # Test coverage reminders
└── docs/ # Development documentation
├── RESEARCH.md # Codebase analysis
├── PLAN.md # Implementation plan
└── NEXT_STEPS.md # Roadmap and testing status
Skills are context-loading documents that Claude uses to assist with specific topics:
- Triggered by natural language matching the
descriptionfield - Provide comprehensive guidance without executing code
- Each skill has YAML frontmatter with a description
Slash commands for specific actions:
/pearpass-dev- Start development server/pearpass-build- Build for platforms/pearpass-test- Run test suites/pearpass-lint- Lint code/pearpass-i18n- Manage translations/pearpass-security-audit- Run security checks
Specialized subagents for complex tasks:
security-reviewer- Uses Glob, Grep, Read to audit securitycode-explorer- Deep codebase explorationcomponent-dev- React/styled-components developmenttest-generator- Generate Jest and Maestro tests
Automatic warnings triggered during development:
security-crypto-warning- PreToolUse on crypto filessecurity-secrets-check- PreToolUse on git commitsquality-i18n-reminder- PostToolUse on UI componentsquality-test-reminder- PostToolUse on new components
| Technology | Version | Purpose |
|---|---|---|
| React Native | 0.79.5 | Mobile framework |
| Expo | ~53.0.17 | Development platform |
| sodium-native | 5.0.9 | libsodium crypto |
| styled-components | 6.1.19 | CSS-in-JS |
| Lingui | 5.3.3 | i18n |
| Jest | 29.7.0 | Unit testing |
| Maestro | - | E2E testing |
- Master Password → Argon2id → Derived key
- Vault Key → XSalsa20-Poly1305 → Encrypted credentials
- Worklet isolation → Crypto in separate thread
- SecureStore → iOS Keychain / Android Keystore
- Biometrics → expo-local-authentication
| Directory | Purpose |
|---|---|
src/components/ |
UI components |
src/hooks/ |
Custom React hooks |
src/context/ |
React Context providers |
packages/pearpass-lib-vault-core/ |
Encryption worklet |
# Install from GitHub
claude plugins add https://github.com/grandcamel/pearpass-plugin- plugin.json format: Skills/commands/agents/hooks use explicit file path arrays
- Skill frontmatter: Must have
descriptionfield for trigger matching - Command frontmatter: Must have
descriptionand optionallyarguments - Agent frontmatter: Must have
descriptionandtoolsfields - Hook frontmatter: Must have
event,tools, and optionallymatch_files
When contributing to this plugin:
- Use
sodium_mallocpatterns in examples - Reference
OPSLIMIT_SENSITIVEfor password hashing - Show
randombytes_buffor nonce generation - Include authentication checks in crypto examples
- Include actual secrets or credentials in examples
- Show insecure patterns without clear warnings
- Use
Buffer.allocfor sensitive data in examples
- The
docs/folder contains research and planning documents - All skills focus on guidance specific to PearPass patterns
- Agents are designed for PearPass's React Native + Expo + sodium-native stack
- Hooks target common security and quality issues in password manager development