# Papa Vault CLI

A command-line interface for Papa Vault Secret Manager.

## About Papa Vault

Papa Vault is a secure secret management service that helps you manage and distribute secrets across your applications and environments. Visit [papavault.com](https://papavault.com) to learn more about our service and create your account.

Key features:
- Secure secret storage and management
- Environment-based secret organization
- Project-based access control
- Easy integration with your applications
- CLI tool for local development

## Installation

```bash
npm install -g @papavault/cli
```

## Usage

### CLI Commands

```bash
# Login to Papa Vault
papavault login

# Set the current project
papavault set-project <project-id>

# Get credentials for a file
papavault get-credentials <file-path>

# List all projects
papavault list-projects

# Get project status
papavault status

# Sync credentials
papavault sync
```

### Programmatic Usage

You can also use PapaVault programmatically in your Node.js applications:

```typescript
import { PapaVault } from '@papavault/cli';

// Create a new instance
const papavault = new PapaVault({
  token: 'your-api-token', // optional, can be set via environment variable
  projectId: 'your-project-id', // optional, can be set later
});

// Set project ID
papavault.setProject('your-project-id');

// List all projects
const projects = await papavault.listProjects();

// Get a specific project
const project = await papavault.getProject('project-id');

// Get credential files for an environment
const credentialFiles = await papavault.getCredentialFiles('environment-id');

// Get a specific credential file
const credentialFile = await papavault.getCredentialFile('environment-id', 'file-id');

// Download a credential file
const fileContent = await papavault.downloadCredentialFile('download-url');
```

### Environment Variables

- `PAPAVAULT_TOKEN`: Your Papa Vault API token
- `PAPAVAULT_PROJECT_ID`: Default project ID
- `PAPAVAULT_API_URL`: Custom API URL (optional)

### Configuration

The CLI stores configuration in your home directory:
- Linux: `~/.config/papavault/config.json`
- macOS: `~/Library/Preferences/papavault/config.json`
- Windows: `%APPDATA%\papavault\config.json`

## Development

### Prerequisites

- Node.js 20.x or higher
- npm

### Setup

1. Clone the repository:
```bash
git clone https://github.com/papavault/cli.git
cd papavault-cli
```

2. Install dependencies:
```bash
npm install
```

3. Build the project:
```bash
npm run build
```

### Available Scripts

- `npm run build` - Build the project
- `npm run start` - Run the built version
- `npm run dev` - Run in development mode
- `npm test` - Run tests
- `npm run lint` - Run ESLint
- `npm run format` - Format code with Prettier

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

ISC

## Support

For support, please open an issue in the [GitHub repository](https://github.com/papavault/cli/issues).
