Skip to content

overlane memory add

Add a memory as a candidate in project, team or user scope

Updated View as MarkdownOpen in ChatGPTOpen in Claude

Writes a memory. Agents write candidates only; a candidate becomes confirmed through a second observer, CI evidence or a person (overlane memory confirm). A person may pass –confirmed for their own statement. Text that contains a secret or personal data is refused and never stored. Write team memory by promoting a project memory (overlane memory promote); global memory is written only by the curator.

Usage

overlane memory add text... [--service URL] [--team TENANT_ID] --title TEXT [--scope project|team|user] [--project PROJECT_ID] [--category fact|decision|event|procedure|preference] [--confirmed] [--dry-run]

Arguments

Argument Required Description
text... yes What to remember

Flags

Flag Type Required Default Description
--service string no The service address (default: OVERLANE_SERVICE_URL, then the project’s binding, then the hosted service)
--team string no The team (tenant) to act on (default: the one your token belongs to)
--title string yes A short title (memories with the same title in different scopes are compared)
--scope one of project, team, user no project Where the memory lives
--project string no The project, for project scope
--category one of fact, decision, event, procedure, preference no fact What kind of memory this is
--confirmed boolean no Store as confirmed (a person’s own statement; an agent writes a candidate and a second observer confirms it)
--dry-run boolean no Print the requests and file changes this command would make, then stop. Needs no credentials.

Examples

overlane memory add --title "Deploy day" "Deploys go out on Tuesdays" --project prj_1
overlane memory add --title "Editor" --scope user "I prefer a dark theme" --dry-run

Behavior

  • Effect: write (changes local or hosted state).
  • Needs credentials: yes. Uses the network: yes.
  • Supports --dry-run: yes. Accepts --force: no.
  • Machine-readable description: overlane schema memory add.

Result

With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.

{
  "anyOf": [
    {
      "type": "object",
      "properties": {
        "tenantId": {
          "type": "string"
        },
        "item": {
          "type": "object",
          "properties": {
            "tenantId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
              "description": "tenant identifier"
            },
            "id": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$"
            },
            "scope": {
              "type": "string",
              "enum": [
                "project",
                "team",
                "user",
                "global"
              ]
            },
            "scopeId": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "projectId": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128,
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$",
                  "description": "project identifier"
                },
                {
                  "type": "null"
                }
              ]
            },
            "userId": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                {
                  "type": "null"
                }
              ]
            },
            "category": {
              "type": "string",
              "enum": [
                "fact",
                "decision",
                "event",
                "procedure",
                "preference"
              ]
            },
            "title": {
              "type": "string",
              "minLength": 1,
              "maxLength": 200
            },
            "body": {
              "type": "string"
            },
            "status": {
              "type": "string",
              "enum": [
                "candidate",
                "confirmed",
                "superseded",
                "expired"
              ]
            },
            "provenance": {
              "type": "object",
              "properties": {
                "observer": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "observerKind": {
                  "type": "string",
                  "enum": [
                    "user",
                    "agent",
                    "ci",
                    "curator"
                  ]
                },
                "observedAt": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                },
                "revision": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              },
              "required": [
                "observer",
                "observerKind",
                "observedAt",
                "revision"
              ],
              "additionalProperties": false
            },
            "symbolLinks": {
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "path": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  },
                  "symbol": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 500
                  }
                },
                "required": [
                  "path",
                  "symbol"
                ],
                "additionalProperties": false
              }
            },
            "derivedFrom": {
              "maxItems": 50,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64,
                "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$"
              }
            },
            "supersedes": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 64,
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]*$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "stale": {
              "type": "boolean"
            },
            "staleReason": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 300
                },
                {
                  "type": "null"
                }
              ]
            },
            "confirmation": {
              "anyOf": [
                {
                  "type": "object",
                  "properties": {
                    "basis": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "second_observer",
                            "ci_evidence",
                            "human"
                          ]
                        },
                        {
                          "type": "string",
                          "const": "curator"
                        },
                        {
                          "type": "string",
                          "const": "checker"
                        }
                      ]
                    },
                    "by": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 160
                    },
                    "at": {
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                    },
                    "evidenceRef": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 300
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "basis",
                    "by",
                    "at",
                    "evidenceRef"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "null"
                }
              ]
            },
            "heldReason": {
              "default": null,
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 400
                },
                {
                  "type": "null"
                }
              ]
            },
            "observationCount": {
              "type": "integer",
              "minimum": 1,
              "maximum": 9007199254740991
            },
            "createdAt": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            },
            "updatedAt": {
              "type": "string",
              "format": "date-time",
              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
            }
          },
          "required": [
            "tenantId",
            "id",
            "scope",
            "scopeId",
            "projectId",
            "userId",
            "category",
            "title",
            "body",
            "status",
            "provenance",
            "symbolLinks",
            "derivedFrom",
            "supersedes",
            "stale",
            "staleReason",
            "confirmation",
            "heldReason",
            "observationCount",
            "createdAt",
            "updatedAt"
          ],
          "additionalProperties": false
        },
        "duplicate": {
          "type": "boolean"
        },
        "repeatObservation": {
          "type": "boolean"
        }
      },
      "required": [
        "tenantId",
        "item",
        "duplicate",
        "repeatObservation"
      ],
      "additionalProperties": {}
    },
    {
      "type": "object",
      "properties": {
        "dryRun": {
          "type": "boolean",
          "const": true
        },
        "service": {
          "type": "string"
        },
        "requests": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "method": {
                "type": "string"
              },
              "path": {
                "type": "string"
              },
              "body": {},
              "note": {
                "type": "string"
              }
            },
            "required": [
              "method",
              "path"
            ],
            "additionalProperties": false
          }
        },
        "commands": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "writes": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "path": {
                "type": "string"
              },
              "action": {
                "type": "string",
                "enum": [
                  "write",
                  "append",
                  "delete"
                ]
              },
              "description": {
                "type": "string"
              }
            },
            "required": [
              "path",
              "action",
              "description"
            ],
            "additionalProperties": false
          }
        },
        "notes": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "dryRun",
        "requests",
        "commands",
        "writes",
        "notes"
      ],
      "additionalProperties": false
    }
  ]
}

See exit codes for the status the process returns.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close

Overlane Agent

Ask about the docs. Answers are quoted from the pages, with links. This panel cannot change anything.

    Questions are answered in your browser from the docs index. Nothing you type here is stored or sent anywhere.