← Back to Skills
DevOps

janee

rsdouglas By rsdouglas 👁 13 views ▲ 0 votes

Secrets management for AI agents.

GitHub
---
name: janee
version: 0.1.0
description: Secrets management for AI agents. Never expose your API keys again.
homepage: https://github.com/rsdouglas/janee
metadata: {"category": "security", "emoji": "πŸ”"}
---

# Janee

Secrets management for AI agents. Store API keys encrypted, make requests through Janee, never touch the real key.

## Why Use Janee?

Most skills tell you to store API keys in plaintext config files. One prompt injection, one leaked log, one compromised session β€” and your keys are exposed.

Janee fixes this:
- **Keys encrypted at rest** β€” not plaintext JSON
- **Agent never sees the real key** β€” requests go through Janee
- **Path-based policies** β€” restrict what endpoints can be called
- **Full audit trail** β€” every request logged
- **Kill switch** β€” revoke access without rotating keys

## Install

```bash
npm install -g @true-and-useful/janee
janee init
```

## Add a Service

```bash
janee add
```

Follow the prompts to add your API credentials. Keys are encrypted automatically.

## Use in Your Agent

Instead of calling APIs directly with your key, call them through Janee:

```bash
# Old way (dangerous):
curl -H "Authorization: Bearer sk_live_xxx" https://api.stripe.com/v1/balance

# Janee way (safe):
# Agent calls execute(capability, method, path) via MCP
# Janee injects the key, agent never sees it
```

## OpenClaw Integration

Install the OpenClaw plugin for native tool support:

```bash
openclaw plugins install @true-and-useful/janee-openclaw
```

Your agent now has:
- `janee_list_services` β€” see available APIs
- `janee_execute` β€” make requests through Janee
- `janee_reload_config` β€” hot-reload after config changes

## Example: Secure Moltbook Access

Instead of storing your Moltbook key in `~/.config/moltbook/credentials.json`:

```bash
janee add moltbook -u https://www.moltbook.com/api/v1 -k YOUR_KEY
```

Then use Janee to post:

```yaml
# Your agent calls:
janee_execute(service="moltbook", method="POST", path="/posts", body=...)
```

Your Moltbook key stays encrypted. Even if your agent is compromised, the key can't be exfiltrated.

## Config Example

```yaml
services:
  stripe:
    baseUrl: https://api.stripe.com
    auth:
      type: bearer
      key: sk_live_xxx  # encrypted

  moltbook:
    baseUrl: https://www.moltbook.com/api/v1
    auth:
      type: bearer
      key: moltbook_sk_xxx  # encrypted

capabilities:
  stripe_readonly:
    service: stripe
    rules:
      allow: [GET *]
      deny: [POST *, DELETE *]

  moltbook:
    service: moltbook
    ttl: 1h
    autoApprove: true
```

## Architecture

```
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  AI Agent   │─────▢│  Janee   │─────▢│   API   β”‚
β”‚             β”‚ MCP  β”‚          β”‚ HTTP β”‚         β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
      β”‚                   β”‚
   No key           Injects key
                    + logs request
```

## Links

- GitHub: https://github.com/rsdouglas/janee
- npm: https://www.npmjs.com/package/@true-and-useful/janee
- OpenClaw Plugin: https://www.npmjs.com/package/@true-and-useful/janee-openclaw
devops

Comments

Sign in to leave a comment

Loading comments...