pull

pull is a command for Claude Code from fcakyon/claude-codex-settings. It costs 0 tokens per session (1,533 once invoked), scanned A, original, Apache-2.0.

A Supabase command that refreshes local project files from a linked Supabase project or branch. Supabase is a hosted platform providing databases, configuration, and server-side Edge Functions.

In plain words
What is it for?
Use it to pull configuration, remote migration history, database schema, and all Edge Function source into a local project, optionally targeting a project or branch.
Why use it?
It removes the need to run separate commands for configuration, database schema, migration history, and function source. The steps run in a fixed order so later steps can use updated local information.

Command for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the supabase-skills plugin — 4 skills, 13 commands shipped together

Good fit Use it to pull configuration, remote migration history, database schema, and all Edge Function source into a local project, optionally targeting a project or branch.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/fcakyon/claude-codex-settings/pull
About the project

claude-codex-settings is a collection of configurations and reusable extensions for Claude Code, OpenAI Codex, Cursor, and related coding tools. Developers use its skills, commands, hooks, agents, plugins, and MCP servers to shape coding-agent workflows and connect alternative model APIs. The catalogue entries are components of this collection that can be installed into supported coding tools.

fcakyon/claude-codex-settings · 1,178 stars · on GitHub · claudesettings.com

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/fcakyon/claude-codex-settings

Made for: Claude Code.

Or install supabase-skills, the plugin that ships this one along with the rest of its 4 skills, 13 commands.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for pull

README.md
[![agentmods](https://agentmods.dev/badge/commands/fcakyon/claude-codex-settings/pull/github.svg)](https://agentmods.dev/commands/fcakyon/claude-codex-settings/pull)
Your own site
<a href="https://agentmods.dev/commands/fcakyon/claude-codex-settings/pull"><img src="https://agentmods.dev/badge/commands/fcakyon/claude-codex-settings/pull/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for pull

Your own site · 80×15
<a href="https://agentmods.dev/commands/fcakyon/claude-codex-settings/pull"><img src="https://agentmods.dev/badge/commands/fcakyon/claude-codex-settings/pull.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,533 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.01533
Opus 5.5 $0.00000 $0.00613
Sonnet 5.5 $0.00000 $0.00307
Haiku 4.5 $0.00000 $0.00153

Measured 14d ago against content hash 8400e96038d8, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

pull scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 14d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/supabase-skills/skills/supabase-cli/references/commands/pull.md · 46 lines

How it starts

The opening of the file, as written. The whole thing — 46 lines — stays where its author put it; the contents beside it link to each section on GitHub.

supabase-pull

Refreshes local project state from a linked Supabase project or branch in one step, instead of running config pull, db pull, migration fetch, and functions download individually. It runs four steps, always in this order: pull config into supabase/config.toml, optionally fetch the remote migration history table into supabase/migrations, pull the database schema into supabase/migrations (also updating that database's own migration history table), and download every Edge Function's source into supabase/functions. The order is fixed rather than parallel: the database step depends on db.major_version in the config file the first step may have just changed, and on the local migration history the second step may have just populated.

Pass --project-ref to target a specific project, or the name (or UUID) of a branch of the currently linked project — values that are exactly 20 lowercase letters are always treated as project refs. Without it, the linked project is the target. --remote-label overrides the [remotes.*] block the config step would otherwise reuse or create for that target, identically to config pull's own flag of the same name (see supabase config pull's docs for the reuse/creation rules it follows).

On a fresh checkout, the migration history step runs automatically even without --with-migration-history, whenever supabase/migrations is missing or a raw directory listing of it turns up no entries at all — the same "existing files" check migration fetch itself uses, so a directory holding only a .gitkeep/README.md already counts as non-empty for this purpose (the listing is unfiltered — any entry at all disqualifies it) and the two commands never disagree about it. There's nothing local to overwrite when the directory is truly empty or missing, and it's what lets the database step run at all: without it, db pull would hard-fail comparing an empty local directory against a remote project that already has migration history. Pass --with-migration-history to force a re-fetch whenever the directory already has any files in it, including only non-migration ones — unlike the bootstrap case, this DOES overwrite: any local migration file that shares a name with a remote history entry is replaced.

supabase pull shows one confirmation before writing anything, covering all four steps. It opens by naming the target (Pulling from project <ref>, or with (branch "<name>") appended when the target is a branch), then lists the four steps in the order they run: the config step's part is a real diff, computed the same way config diff/config pull compute theirs (or "No config differences found." when there is nothing to change); the migration-history line only appears when that step will actually run this invocation, and calls out that it overwrites same-named local files when it's running because of --with-migration-history rather than the bootstrap case; the database line notes that it also updates the remote migration history table and requires Docker; the functions line describes the download. --dry-run prints this exact same disclosure body — not a placeholder or a status-only summary — before exiting without writing or changing anything. --yes skips the confirmation and takes its default answer.

supabase pull checks THREE locations for uncommitted or untracked changes in git before writing: supabase/config.toml (or config.json), supabase/migrations, and supabase/functions. The config check only fires when the config step itself has work to write — a config that's already fully converged with the target never triggers it. The other two fire unconditionally: the database step always attempts to run and has no way to know in advance whether it will find schema drift and write into supabase/migrations, and the functions step always runs with no equivalent "nothing to do" signal available without calling the API first — so both are checked every run to avoid silently missing real uncommitted work. Each location's dirty state is tracked separately: the confirmation body and any abort message name exactly which path(s) are actually dirty, e.g. supabase/config.toml has uncommitted or untracked changes... for one, or supabase/config.toml, supabase/migrations, and supabase/functions have uncommitted or untracked changes... when all three are. --force writes even when any of the three is dirty — without it, an interactive run's confirmation defaults to declining instead of proceeding, and every other case (non-interactive, machine output format, or --yes on any TTY) aborts outright rather than silently overwriting local edits.

Read the full file on GitHub · 46 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 14d ago First seen · 46 lines · 0 tokens per session scan A 8400e96038d8

Subscribe to this mod's changes

pull is a command published in the GitHub repository fcakyon/claude-codex-settings (1,178 stars, last pushed yesterday), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,533 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-02.