.agents/skills/add-graphite/SKILL.md
Add Graphite CLI to OmniClaw container and configure authentication. Installs Graphite for stacked PRs workflow and handles pre-authorization.
npx skillsauth add omniaura/omniclaw add-graphiteInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
This skill adds Graphite CLI support to OmniClaw by updating the Dockerfile template and pre-authorizing the CLI inside the container.
Graphite CLI enables stacked pull requests workflow, making it easier to manage complex PR chains and keep work organized.
GITHUB_TOKEN in .env)Just run /add-graphite and the skill will walk you through the process.
First, check if Graphite is already installed in the container:
# Check if Graphite is in the Dockerfile
grep -q "graphite" container/Dockerfile && echo "Found" || echo "Not found"
Also check if it's already available in a running container by trying to exec into one:
# Find a running container
CONTAINER=$(docker ps --filter "label=omniclaw.group" --format "{{.Names}}" | head -1)
if [ -n "$CONTAINER" ]; then
docker exec "$CONTAINER" which gt && echo "Graphite already installed" || echo "Not installed"
fi
Read container/Dockerfile and add Graphite CLI installation after the GitHub CLI installation section.
Add this block after the # Install GitHub CLI section (around line 48-55):
# Install Graphite CLI for stacked PRs workflow
RUN npm install -g @withgraphite/graphite-cli
This installs the Graphite CLI globally via npm, making the gt command available system-wide.
Tell the user:
Graphite CLI has been added to the Dockerfile. Now I need to rebuild the container image. This will take a few minutes.
Run the container build script:
cd container && ./build.sh
If the build fails:
logs/setup.log or check the terminal output for errorsGRAPHITE_ARCH logic matches your platformGraphite CLI needs to authenticate with GitHub. It uses the same GitHub token as the rest of OmniClaw.
Check if GITHUB_TOKEN is set:
if grep -q "^GITHUB_TOKEN=" .env; then
echo "GitHub token found"
else
echo "GitHub token not found"
fi
If token is missing:
Tell the user:
Graphite needs a GitHub token to authenticate. You can use the same token configured for OmniClaw.
If you haven't set up GitHub integration yet:
- Go to https://github.com/settings/tokens (click Tokens (classic))
- Generate a new classic token with the
reposcope- Add it to
.env:GITHUB_TOKEN=<token>- Run
cp .env data/env/envto sync to the containerThen re-run this skill.
Wait for confirmation, then verify the token is in .env.
Graphite authentication is handled automatically by the container entrypoint script.
When a container starts:
GITHUB_TOKEN)echo "$GITHUB_TOKEN" | gt auth --token -No manual auth steps needed! The authentication is built into container/entrypoint.sh.
After rebuilding and restarting, verify Graphite works by checking container logs:
tail -f logs/omniclaw.log
You should see Graphite authentication messages when containers start.
To manually verify in a running container:
# Find a running container
CONTAINER=$(docker ps --filter "label=omniclaw.group" --format "{{.Names}}" | head -1)
# Check Graphite version and auth status
docker exec "$CONTAINER" gt --version
docker exec "$CONTAINER" gt auth status
Expected output:
@withgraphite/[email protected]
✓ Authenticated as <your-github-username>
The Graphite skill file provides documentation and examples for using Graphite CLI. It's already included in the container at container/skills/graphite/SKILL.md.
When containers start, skills from container/skills/ are automatically available to agents.
Tell the user:
✅ Graphite CLI is now installed and authenticated!
You can now use Graphite commands inside the container:
gt stack submit- Submit a stack of PRsgt stack restack- Rebase the stackgt stack- View current stackgt log- View stack historyThe agent can use these commands when working on multi-PR workflows.
A
/graphiteskill is also available with usage examples and workflow tips.
Graphite installation didn't work or binary isn't in PATH.
Fix:
# Manually install in running container
CONTAINER=$(docker ps --filter "label=omniclaw.group" --format "{{.Names}}" | head -1)
docker exec "$CONTAINER" bash -c "curl -fsSL https://graphite.dev/install.sh | sh && mv /root/.graphite/bin/gt /usr/local/bin/"
GITHUB_TOKEN is valid: curl -H "Authorization: token $(grep GITHUB_TOKEN .env | cut -d= -f2)" https://api.github.com/userrepo scopedocker exec -it <container> gt authAfter rebuilding the image, existing containers need to be recreated.
Restart the service:
launchctl kickstart -k gui/$(id -u)/com.omniclaw
This will spawn new containers with the updated image.
Graphite stores config in ~/.graphite/. To persist config across container recreations:
For OmniClaw, since containers are ephemeral, the auth token approach (re-authing on boot if needed) is recommended.
/setup - Initial OmniClaw setup/customize - Customize Dockerfile and container settingsTo remove Graphite:
container/Dockerfilecd container && ./build.shlaunchctl kickstart -k gui/$(id -u)/com.omniclawtools
Manage stacked pull requests using Graphite CLI. Create, submit, and restack PR chains.
tools
Full GitHub operations via `gh` CLI — pull requests, issues, code review, CI/CD, search, and GraphQL API. Use for any GitHub interaction beyond basic git.
development
Browse the web for any task — research topics, read articles, interact with web apps, fill forms, take screenshots, extract data, and test web pages. Use whenever a browser would be useful, not just when the user explicitly asks.
testing
X (Twitter) integration for OmniClaw. Post tweets, like, reply, retweet, and quote. Use for setup, testing, or troubleshooting X functionality. Triggers on "setup x", "x integration", "twitter", "post tweet", "tweet".