Skip to content

edwincapel/CAM

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CAM - Claude Agent Manager

License: MIT Platform: macOS | Linux Version: 0.1.0

A terminal UI for managing your Claude Code skills and agents. Browse, search, preview, install, and uninstall from your own library - no AI tokens spent.

Menu

Table of Contents

The Problem

Claude Code supports custom skills and agents, but managing them is manual. You write .md files, copy them to the right directory, and hope you remember what you installed. Once you have 10, 20, 50+ skills, it becomes tedious - and every installed skill gets loaded into Claude Code's context window on every session, burning tokens on things irrelevant to your current task.

How It Works

flowchart LR
    A["Your Library\nSkills/*.md\nAgents/*.md"] -->|browse / search| B["CAM\nfzf TUI"]
    B -->|install| C["~/.claude/\nskills/\nagents/"]
Loading
  • Browse your full library of skills and agents
  • Search by name or description
  • Preview full content in a side pane before installing
  • Install with one keypress - files are copied to the correct Claude Code directory
  • Uninstall just as easily
  • Settings to point CAM at any library folder, anytime

Quickstart

# 1. Install fzf
brew install fzf

# 2. Install CAM
curl -fsSL https://raw.githubusercontent.com/edwincapel/CAM/main/install.sh | bash

# 3. Launch - first run will ask you to pick your library folder
cam

# 4. Or set the library path directly
cam --vault /path/to/your/library

Prerequisites

Dependency Required Install
fzf Yes brew install fzf (macOS) / sudo apt install fzf (Linux)
bash 3.2+ Yes Pre-installed on macOS and most Linux distros
git Yes For install script (clone + update)
curl Yes For install script

Supported platforms: macOS, Linux. On macOS the first-run vault picker uses a native Finder dialog. On Linux it falls back to a terminal prompt.

Install

curl -fsSL https://raw.githubusercontent.com/edwincapel/CAM/main/install.sh | bash

This:

  1. Checks that fzf and git are installed (exits with error if not)
  2. Clones CAM to ~/.local/share/cam
  3. Symlinks cam into ~/.local/bin
  4. Adds ~/.local/bin to your PATH if needed

Usage

cam                    # Launch the TUI
cam --help             # Show help
cam --version          # Show version
cam --vault /path      # Set library path without launching TUI

The TUI has four menu items:

  1. Skills - Browse or search your skill library, preview content, install with Enter
  2. Agents - Browse or search your agent library, preview content, install with Enter
  3. Manage installed - See what's currently installed in ~/.claude/, uninstall with Enter
  4. Settings - Change your library path

CLI Flags

Flag Description
--help, -h Show help and exit
--version, -v Print version and exit
--vault PATH Set library vault path (saved to config)

Setting Up Your Library

CAM reads skills and agents from a folder you choose. The folder should have this structure:

my-library/
  Skills/
    my-skill.md
    another-skill.md
  Agents/
    my-agent.md

Configuring the Library Path

Precedence (highest to lowest):

  1. CAM_VAULT environment variable
    export CAM_VAULT="/path/to/your/library"
  2. Config file (~/.config/cam/config)
    VAULT="/path/to/your/library"
  3. First-run picker - on macOS a Finder dialog opens; on Linux you're prompted in the terminal
  4. --vault flag - cam --vault /path/to/library saves to the config file

You can change the library anytime from the TUI: Dashboard > Settings > Change library vault.

Writing Skills and Agents

Each .md file needs YAML frontmatter. CAM uses the name and description fields for display and search. Files missing these fields will show with blank descriptions.

Skill example (Skills/my-skill.md):

---
name: my-skill
description: Does something useful
---

Your skill instructions here...

Agent example (Agents/my-agent.md):

---
name: my-agent
description: An agent that does X
model: sonnet
tools: ["Read", "Edit", "Bash"]
---

Your agent instructions here...

When installed, CAM strips any lines before the first --- (e.g., Obsidian wiki-links) and copies to:

~/.claude/skills/my-skill/SKILL.md
~/.claude/agents/my-agent/AGENT.md

Screenshots

Click to expand all screenshots

Menu

Menu

Browse all skills with preview

Browse skills

Browse all agents with preview

Browse agents

Search agent

Search agent

Installed

Installed

Uninstall

Uninstall

Uninstall

Remove CAM and its config:

rm -rf ~/.local/share/cam    # CAM installation
rm -f ~/.local/bin/cam       # symlink
rm -rf ~/.config/cam         # config file

This does NOT remove any skills/agents you've installed into ~/.claude/. To remove those, use cam > Manage installed before uninstalling, or manually delete from ~/.claude/skills/ and ~/.claude/agents/.

Updating

Re-run the install command - it pulls the latest version:

curl -fsSL https://raw.githubusercontent.com/edwincapel/CAM/main/install.sh | bash

Contributing

Issues and PRs welcome at github.com/edwincapel/CAM.

To run locally during development:

git clone https://github.com/edwincapel/CAM.git
cd CAM
bash cam.sh

License

MIT

About

Terminal UI for managing Claude Code skills and agents. Browse, search, preview, install and uninstall from your own library - zero AI tokens.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages