---
name: Pi Goal
slug: pi-goal
category: AI Engineering
description: Pi Goal tracks long-running goals persistently, with Codex-style create, inspect, update, pause, resume, and complete commands. Use it when the user explicitly asks to set, continue, audit, pause, resume, complete, or inspect a goal.
github: "https://github.com/code-yeongyu/oh-my-openagent/tree/dev/packages/pi-goal"
language: TypeScript
stars: 67782
forks: 5541
install: "npx degit https://github.com/code-yeongyu/oh-my-openagent/tree/dev/packages/pi-goal ~/.claude/skills/pi-goal"
installs_to: ~/.claude/skills/pi-goal
source_path: packages/pi-goal/SKILL.md
collection_size: 21
category_size: 2451
collection_url: "https://dirskills.com/collections/code-yeongyu/oh-my-openagent"
added: 2026-08-13T07:36:28.924Z
last_synced: 2026-08-13T07:36:28.924Z
canonical_url: "https://dirskills.com/skills/pi-goal"
---

# Pi Goal

Pi Goal tracks long-running goals persistently, with Codex-style create, inspect, update, pause, resume, and complete commands. Use it when the user explicitly asks to set, continue, audit, pause, resume, complete, or inspect a goal.

**Install:**

```bash
npx degit https://github.com/code-yeongyu/oh-my-openagent/tree/dev/packages/pi-goal ~/.claude/skills/pi-goal
```

## README

# pi-goal

Use goal tools only when the user explicitly wants persistent goal tracking or when an active goal already exists.

## Tools

Create a goal:

```ts
create_goal({
	objective: "Ship the pi-goal extension",
	token_budget: 50000,
});
```

Inspect a goal:

```ts
get_goal({});
```

Update a goal:

```ts
update_goal({
	status: "complete",
});
```

`update_goal` only accepts `complete`. User-facing `/goal` commands control pause, resume, budget-limited, and clear transitions.

## Completion Rule

Before marking a goal complete, audit the actual current state:

1. Restate the goal as concrete deliverables.
2. Map every explicit requirement to real evidence.
3. Inspect files, command output, test results, or repository state for each item.
4. Treat uncertainty as incomplete.
5. Call `update_goal({ status: "complete" })` only when no required work remains.

Use budget-limited status when the reason to stop is budget exhaustion rather than completion.
