---
# @generated by sylphx-gen 0.1.0 from contracts@fb95f0c42a0ec5d8e3cb694c0054b529c0b24b184112c65ef60c9044b4ce61f9. Do not edit.
title: "sylphx knowledge relations"
description: "The sylphx knowledge relations commands of Sylphx Knowledge: every verb, with its argument, its flags and a run line."
type: reference
product: knowledge
summary: "Every sylphx knowledge relations command: its argument, its flags and a run line."
updated: 2026-09-28
nav: false
---

The `relations` commands of Sylphx Knowledge, as the CLI spells them: the same
calls as [the `relations` API page](/docs/api/relations), typed for the
shell. [Install, sign in and the grammar](/docs/cli) are on the CLI index.

**Not available yet.** Sylphx Knowledge is declared in the registry but no backend serves it: every command answers `501` with the problem code `UNIMPLEMENTED`.

## get

Gets a relation.

**`NAME`** — the resource's name; a bare id is enough below the linked
project.

**CLI**

```bash
sylphx knowledge relations get orgs/acme/projects/shop/envs/production/spaces/space/relations/relation
```

`GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/spaces/space/relations/relation` · scope `knowledge:read` · effect `read` · [Request, response and examples](/docs/api/relations/get)

## list

Lists a space's facts. The filter is limited to `subject`, `predicate`, `object` and `provenance.channel`; superseded facts are listed only with `show_superseded`.

**`PARENT`** — optional: the CLI fills it from the linked project or the
key's scope when it is left out.

**CLI**

```bash
sylphx knowledge relations list orgs/acme/projects/shop/envs/production/spaces/space
```

`GET https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/spaces/space/relations` · scope `knowledge:read` · effect `read` · [Request, response and examples](/docs/api/relations/list)

**Flags**

| Flag | Type | What it does |
| --- | --- | --- |
| `--page-size` | `int` | At most this many; default 50, clamped to 1000. |
| `--page-token` | `string` | `next_page_token` of the previous page. |
| `--filter` | `string` | AIP-160 filter, limited to `subject`, `predicate`, `object` and `provenance.channel`. |
| `--valid-time` | `timestamp` | List facts as they were valid at this time, including facts closed since; default now. |
| `--show-superseded` | `bool` | Also list facts that a newer record replaced. |

## create

Records a fact in a space (`relate`). A fact that contradicts a current one with the same subject and a single-valued predicate closes the older fact; nothing is overwritten.

**`ID`** — The id segment of the new Resource's name; the server assigns one when omitted.

**CLI**

```bash
sylphx knowledge relations create --parent orgs/acme/projects/shop/envs/production/spaces/space --subject … --predicate …
```

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/spaces/space/relations` · scope `knowledge:write` · effect `write` · [Request, response and examples](/docs/api/relations/create)

**Flags**

| Flag | Type | What it does |
| --- | --- | --- |
| `--parent` | `string` | The parent to create in; defaults to the linked project or the key's scope. |
| `--meta.labels` | `key=value` | Caller-writable, indexed labels (AIP-122 label rules). Repeat the flag for each value. |
| `--meta.annotations` | `key=value` | Caller-writable, unindexed annotations. Repeat the flag for each value. |
| `--meta.display-name` | `string` | Caller-writable human-readable name. |
| `--subject` | `string` | The entity the fact is about. Required. |
| `--predicate` | `string` | The relation type, snake_case, for example `works_at` or `prefers`; a core predicate or one of an accepted Knowledge Schema. Required. |
| `--object` | `string` | The other entity, for an edge. A fact has `object`, `value`, or both. |
| `--value` | `json` | The value, for a fact about one entity. |
| `--statement` | `string` | The fact as one sentence, used for search and shown with citations. |
| `--valid-start-time` | `timestamp` | When the fact starts to hold in the world; default when it was recorded. |
| `--valid-end-time` | `timestamp` | When the fact stopped holding in the world; unset while it holds. |
| `--episodes` | `string` | The episodes the fact comes from. A structured write with none records its own episode and cites it; an extracted fact cites the episodes it was read from. Repeat the flag for each value. |
| `--dry-run` | `bool` | Validate and print the result without writing (validate_only). |

## delete

Deletes a fact. Deletion is for data that must go; a fact that stopped being true is closed with `:close`.

**`NAME`** — the resource's name; a bare id is enough below the linked
project.

**CLI**

```bash
sylphx knowledge relations delete orgs/acme/projects/shop/envs/production/spaces/space/relations/relation --yes
```

`DELETE https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/spaces/space/relations/relation` · scope `knowledge:write` · effect `destructive` · [Request, response and examples](/docs/api/relations/delete)

**Flags**

| Flag | Type | What it does |
| --- | --- | --- |
| `--etag` | `string` | Delete only if the current etag matches. |
| `--allow-missing` | `bool` | Succeed when the relation does not exist. |
| `--dry-run` | `bool` | Validate and print the result without writing (validate_only). |
| `--yes` | `bool` | Do not ask before this destructive call. |

## close

Closes a fact (`close_fact`): it stopped holding in the world at `valid_end_time`. The fact stays readable for questions about the time before the close.

**`NAME`** — the resource's name; a bare id is enough below the linked
project.

**CLI**

```bash
sylphx knowledge relations close orgs/acme/projects/shop/envs/production/spaces/space/relations/relation
```

`POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/spaces/space/relations/relation:close` · scope `knowledge:write` · effect `write` · [Request, response and examples](/docs/api/relations/close)

**Flags**

| Flag | Type | What it does |
| --- | --- | --- |
| `--valid-end-time` | `timestamp` | When the fact stopped holding in the world; default now. |
| `--etag` | `string` | Close only if the current etag matches. |
