filament CLI manages connections, pipelines, and runs. It works against
the local runtime or a deployed Filament server. A context selects the target,
and most management commands work with both.
The built-in local context needs no external services. It runs Filament in
process with file-backed SQLite and an in-process event bus. State, secrets,
run history, and checkpoints survive between commands.
Install
Run the install script on Linux or macOS:filament version.
Interactive mode
Open the main menu in a terminal:Commands
list can be shortened to ls, and context to ctx. Add --help after a
command to see its flags. When a connector is selected, help also lists that
connector’s fields.
The global flags work in any position:
Connections
Connector fields become flags with asource- or sink- prefix. Underscores
become hyphens. For example, database_name becomes
--source-database-name.
Create two local connections:
filament source ls and filament sink ls. edit changes only
the fields you pass. Use --unset source-FIELD or --unset sink-FIELD to
remove an optional field.
delete asks for confirmation unless you pass --force. A connection cannot
be deleted while a pipeline uses it.
Secrets
Secret fields accept a value or an environment reference. These forms are equivalent in a local context:env:POSTGRES_DSN and resolved from the CLI’s
environment when needed. Quote $NAME forms so the shell does not expand
them first. References inside nested configuration are resolved too.
On a remote context, secret references belong to the deployment’s secret
provider; they do not read the CLI process’s environment. A secret value sent
to the server is removed from connection configuration and stored by that
provider.
Discover resources
Discover a saved source:--refresh to bypass a cached discovery result.
You can also discover without saving the source:
Pipelines
Create a pipeline from saved connections:--resources selects every resource discovered by the source.
Available sync and write modes depend on the selected connectors.
Pipeline-scoped connector fields use the same prefixes. For example,
--sink-schema filament selects a destination schema. When a sink declares a
schema, namespace, database, or key-prefix field and it is empty, the CLI uses
the normalized source name.
Run pipelines
Run a saved pipeline on the selected context:--limit to change the page size
and the printed --next cursor to fetch the next page.
Direct local runs
An inline transfer runs locally without saving connections or a pipeline:Local runtime
Normal local commands start the embedded runtime, perform one operation, and stop it. Useup to keep the API and web UI available:
127.0.0.1:8080. Run it in the background with:
filament up only accepts a local context. It uses the same SQLite database
and secrets as other local commands.
Local configuration
The built-in local context reads~/.config/filament/filament.yaml, or
$XDG_CONFIG_HOME/filament/filament.yaml when XDG_CONFIG_HOME is set.
filament config path prints the active path.
The YAML file is a declarative input to the local runtime:
filament config validate to check the file and filament config edit to
open it in $VISUAL or $EDITOR. An invalid edit leaves a recovery file. Raw
YAML commands apply only to local contexts.
Remote contexts
Add an unauthenticated deployment and select it:--context production to select it for one command instead. filament status shows the active context and whether its server is reachable.
For an authenticated deployment, log in with a service account:
filament auth status shows the current
state; filament auth logout removes the context’s credentials.
Contexts and credentials are stored separately with owner-only permissions.
Output
Tables use the boxed layout by default. Select a plain layout with--layout plain or FILAMENT_LAYOUT=plain. A layout chosen from the
interactive Settings menu is saved for later commands. Set NO_COLOR to
disable terminal colors.