Skip to main content

flapii CLI

flapii is the command-line client for the flAPI Configuration Service. It talks to a running flapi server over HTTP (/api/v1/_config/*) to inspect and manage endpoints, SQL templates, caches, and project settings at runtime — no restart required.

flapii is a separate binary from the flapi server. For the server's CLI flags (-c, -p, --log-level, --validate-config, --config-service, --config-service-token, --no-telemetry) and the flapi pack / info / unpack self-packaging subcommands, see the dedicated Server CLI reference.

Installation​

flapi (server) and flapii (CLI) are shipped together. Both binaries live inside the flapi-io PyPI wheel and inside the GitHub release archive for your platform.

pip install flapi-io
flapi --help # server
flapii --help # CLI

Both flapi and flapii entry points are installed on your PATH by a single pip install. The package name is flapi-io because flapi is taken on PyPI — there is no separate flapii distribution.

Standalone binaries​

Each GitHub release ships pre-compiled archives that contain both binaries:

AssetContents
flapi-linux-amd64.tar.gzflapi (server) + flapii (CLI)
flapi-linux-arm64.tar.gzflapi + flapii
flapi-macos-arm64.tar.gzflapi + flapii
flapi-windows-amd64.zipflapi.exe + flapii.exe

Download from the Releases page, extract, and put both binaries on your PATH:

curl -L https://github.com/DataZooDE/flapi/releases/latest/download/flapi-linux-amd64.tar.gz \
| tar xz
chmod +x flapi flapii
./flapii --help

Try without installing​

uvx --from flapi-io flapii --help
uvx --from flapi-io flapi -c flapi.yaml # run the server the same way

Talking to a server​

flapii needs a running flapi server with the Configuration Service enabled:

# Start the server with the config service API exposed
./flapi -c flapi.yaml --config-service --config-service-token "$FLAPI_CONFIG_SERVICE_TOKEN"

Point flapii at it via flags or environment variables:

export FLAPI_BASE_URL=http://localhost:8080
export FLAPI_CONFIG_SERVICE_TOKEN="your-token"

flapii ping
flapii endpoints list

Global Options​

The following flags work on every subcommand:

FlagDescriptionEnv var
-c, --config <path>Path to flapi.yaml (used to derive defaults like base URL)—
-u, --base-url <url>Base URL of the flapi serverFLAPI_BASE_URL
--auth-token <token>Bearer token for endpoint authenticationFLAPI_TOKEN
-t, --config-service-token <token>Token for the Configuration Service APIFLAPI_CONFIG_SERVICE_TOKEN
--timeout <seconds>HTTP request timeoutFLAPI_TIMEOUT
--retries <count>Number of retries for failed requestsFLAPI_RETRIES
--insecureDisable TLS certificate verification—
-o, --output <format>Output format: json (default) or table—
--json-style <style>JSON key casing: camel (default) or hyphen—
--debug-httpPrint HTTP request and response bodies—
-q, --quietSuppress non-error output—
-y, --yesAssume yes for confirmation prompts—

Additional environment variables read by the CLI:

  • FLAPI_GEMINI_KEY — Gemini API key used by flapii project init --ai and flapii endpoints wizard --ai.

Subcommands​

The CLI exposes the following command groups (verify with flapii --help):

ping​

flapii ping

Checks that the configured server is reachable and the token (if any) is accepted.

config​

Inspect and manage server-side configuration state.

flapii config show
flapii config validate
flapii config log-level get
flapii config log-level set debug
flapii config log-level list

project​

flapii project get                 # Read project metadata from the server
flapii project init # Scaffold a new flapi project in the current directory
flapii project init my-api # Scaffold into a new directory
flapii project init my-api --force --no-examples --advanced --ai

project init flags:

  • -f, --force — overwrite existing files
  • --skip-validation — skip post-scaffold config validation
  • --no-examples — only create directories and flapi.yaml
  • --advanced — include extra template files
  • --ai — use Gemini-assisted configuration (requires FLAPI_GEMINI_KEY)

endpoints​

flapii endpoints list
flapii endpoints get /customers
flapii endpoints create
flapii endpoints update /customers
flapii endpoints delete /customers
flapii endpoints validate /customers
flapii endpoints reload /customers
flapii endpoints wizard

endpoints reload <path> calls POST /api/v1/_config/endpoints/{slug}/reload to apply changes without a server restart.

templates​

flapii templates list
flapii templates get /customers
flapii templates update /customers
flapii templates expand /customers --params '{"id":"123"}'
flapii templates test /customers

cache​

flapii cache list
flapii cache get /customers
flapii cache update /customers
flapii cache template /customers
flapii cache update-template /customers
flapii cache refresh /customers

schema​

flapii schema get
flapii schema refresh
flapii schema connections
flapii schema tables

mcp​

flapii mcp tools list
flapii mcp tools get <name>
flapii mcp prompts list
flapii mcp prompts get <name>
flapii mcp resources list
flapii mcp resources get <name>

Common Workflows​

Validate an endpoint before reloading​

flapii endpoints validate /customers
flapii endpoints reload /customers

Inspect what SQL a template produces​

flapii templates expand /customers --params '{"segment":"ENTERPRISE"}'

Refresh a cached endpoint​

flapii cache refresh /customers
flapii cache get /customers --output table

Scaffold and run a new project​

flapii project init my-first-api
cd my-first-api
./flapi -c flapi.yaml

CI/CD Integration​

name: Validate flAPI configuration

on: [push, pull_request]

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Install flAPI
run: |
pip install flapi-io flapii

- name: Validate configuration
run: flapi --validate-config -c flapi.yaml

For per-endpoint validation against a running server, use flapii endpoints validate <path> in a job that first starts flapi --config-service in the background.

VS Code Integration​

A VS Code extension that wraps flapii is on the roadmap. See VS Code Extension for current status.

Server CLI​

The flapi server binary has its own reference page covering its flags, environment variables, and the pack / info / unpack self-packaging subcommands:

➡ Server CLI reference

That page is the canonical source for everything the flapi binary itself accepts; flapii (documented above) is the client tool that talks to a running server.

Troubleshooting​

flapii: command not found​

Install via pip install flapii or download a standalone binary from the Releases page.

Error: connection refused​

flapii could not reach the server. Check FLAPI_BASE_URL (default http://localhost:8080) and that the server is running with --config-service enabled.

401 Unauthorized from the Configuration Service​

Provide the token via -t/--config-service-token or FLAPI_CONFIG_SERVICE_TOKEN. The server requires either Authorization: Bearer <token> or X-Config-Token: <token>.

Next Steps​

Need help? Join our GitHub Discussions.

🍪 Cookie Settings