eforge-build/eforge/eforge-profile
Claude Code and agent skill by eforge-build/eforge
- community
Checking that the SKILL.md file is still in the repository.
List, inspect, and switch agent runtime profiles
Install
npx vskill@latest install eforge-build/eforge/eforge-profileSKILL.md
Note: In Pi, the native/eforge:profilecommand provides a richer interactive experience with TUI selector/panel profile browsing and switching. This skill serves as a fallback for non-interactive contexts and as model-readable documentation.
/eforge:profile
List, inspect, and switch named agent runtime profiles stored in .eforge/profiles/ (project-local scope), eforge/profiles/ (project scope), or ~/.config/eforge/profiles/ (user scope). The active profile is tracked by a marker file at any level; resolution follows a 6-step precedence chain (see below).
Workflow
Step 1: Branch on arguments
Inspect $ARGUMENTS:
- If
$ARGUMENTSis empty or whitespace, go to Step 2 (inspect mode). - Otherwise treat the argument as a profile name and go to Step 3 (switch mode).
Step 2: Inspect mode
Call the eforge_profile tool with { action: "show" }.
Parse the response (shape: { active, source, resolved: { harness, profile, metadata } }) and report:
- Active profile:
{active}(or "(none - using team default)" whenactiveis null) - Source:
{source}(localwhen the active profile is picked via the.eforge/.active-profilemarker,projectwhen picked via theeforge/.active-profilemarker,missingwhen the marker points at a profile file that does not exist (stale marker),nonewhen no profile is configured at all) - Resolved harness:
{resolved.harness}(e.g.claude-sdkorpi) - Metadata (when present in
resolved.metadata): - Description:
{resolved.metadata.description} - Use when:
{resolved.metadata.whenToUse}(as a bullet list) - Tags:
{resolved.metadata.tags}(comma-separated) - Tier toolbelts (when
tierToolbeltsis present in the response): render a per-tier summary under aTier toolbelts:sub-header: - For each tier in
tierToolbelts, show<tier>: <toolbelt>followed by the sorted MCP server names in parentheses when non-empty, e.g.implementation: browser-ui (playwright)orplanning: noneorreview: all (default).
Then call eforge_profile with { action: "list" } to show the user what other profiles are available, rendering a table with the following columns:
| Name | Scope | Harness | Description | Active | |
|---|---|---|---|---|---|
pi-anthropic | local | pi | Fast multi-provider | ● | |
pi-glm | project (shadowed) | pi | |||
claude-fast | user | claude-sdk |
- Scope:
localfor profiles in.eforge/profiles/(gitignored, project-local),projectfor profiles ineforge/profiles/,userfor profiles in~/.config/eforge/profiles/. - Local entries shadow project and user entries of the same name. Project entries shadow user entries of the same name. Shadowed entries show
project (shadowed)oruser (shadowed)in the Scope column. - Mark the active profile with
●. - Description: show
resolved.metadata.descriptionwhen present (truncated to ~60 chars). Leave blank when absent.
If no profiles exist, suggest /eforge:profile-new to create one.
Step 3: Switch mode
Call eforge_profile with { action: "use", name: "<arg>" }. To set the active profile at user scope instead of project scope, pass scope: "user": { action: "use", name: "<arg>", scope: "user" }.
On success, the daemon writes the active-profile marker at the chosen scope (.eforge/.active-profile for local, eforge/.active-profile for project, ~/.config/eforge/.active-profile for user). Then call { action: "show" } again and report the new active profile plus the resolved harness:
Switched to{name}. Resolved harness:{resolved.harness}. The next eforge build will use this profile.
On error (e.g. the profile does not exist), surface the error message and suggest running /eforge:profile with no args to list available profiles, or /eforge:profile-new to create a new one.
Scope Parameter
The scope parameter is available on list, use, create, and delete actions:
- `list`:
scopeaccepts"local","project","user", or"all"(default"all") - shows profiles from all scopes when omitted. - `use` / `create` / `delete`:
scopeaccepts"local","project", or"user"(default"project") - operates on.eforge/profiles/and.eforge/.active-profilefor local scope,eforge/profiles/andeforge/.active-profilefor project scope,~/.config/eforge/profiles/and~/.config/eforge/.active-profilefor user scope.
Active Profile Precedence
The active agent runtime profile is resolved using a 4-step precedence chain (highest to lowest):
- Project-local marker -
.eforge/.active-profilefile in the repo root (gitignored) - Project marker -
eforge/.active-profilefile in the project - User marker -
~/.config/eforge/.active-profilefile - None - no profile configured
When a profile name is resolved, the profile file is looked up local-first, then project, then user-fallback - so a local profile shadows project and user profiles with the same name.
Error Handling
| Condition | Action | |
|---|---|---|
| Profile name does not exist | Show the daemon error and list available profiles | |
No eforge/profiles/ directory | Suggest /eforge:profile-new to create the first profile |
<!-- parity-skip-start -->
<!-- parity-skip-end -->
Related Skills
| Skill | When to suggest | |
|---|---|---|
/eforge:profile-new | User wants to create a new named profile | |
/eforge:config | User wants to view or edit eforge/config.yaml (the team default fallback) | |
eforge_extension_contribution | User wants to discover or invoke workflows provided by loaded extensions | |
/eforge:status | User wants to check current build status |
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingpackages/pi-eforge/skills/eforge-profile/SKILL.md
Popularity
- Repository stars
- 69
- Repository forks
- 4
- 7-day trend score
- 21
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/eforge-build/eforge/eforge-profile)