]> git.giacomolli.uk - onechat/blobdiff - README.rst
Build the summary nodes with a model
[onechat] / README.rst
index ce4696ef0a650b6bf67f182e8fadf8c742710d33..fdcc0e0af17f1c70de0795242da868f4a67fe2e9 100644 (file)
@@ -5,6 +5,64 @@
 OneChat is a Go program. It prints its name. It is in early development.
 Linux is supported.
 
 OneChat is a Go program. It prints its name. It is in early development.
 Linux is supported.
 
+****************
+ Data directory
+****************
+
+OneChat keeps its data and its token file in one directory. It uses the
+first of these:
+
+#. ``ONECHAT_DIR``, when it is set.
+#. ``$XDG_DATA_HOME/onechat``, when ``XDG_DATA_HOME`` is an absolute
+   path. A relative value is ignored.
+#. ``~/.local/share/onechat``. With no home directory, OneChat exits
+   with an error.
+
+OneChat creates the directory with mode 0700.
+
+***************
+ Configuration
+***************
+
+``config.json`` in the data directory holds the settings. OneChat does
+not create it. A missing file or field takes the default, and an unknown
+field is an error.
+
+.. code:: json
+
+   {
+     "endpoint": "chatgpt",
+     "compactor": {"model": "gpt-6-luna", "effort": "high"}
+   }
+
+``endpoint``
+   ``chatgpt`` (the default) sends model calls to the ChatGPT backend
+   with the subscription login. ``api`` sends them to the OpenAI API
+   with the key in ``OPENAI_API_KEY``, which must then be set. With
+   ``chatgpt``, OneChat ignores ``OPENAI_API_KEY``.
+
+``compactor``
+   The model and the reasoning effort of the summaries. The defaults are
+   ``gpt-6-luna`` and ``high``.
+
+*******
+ Login
+*******
+
+The ``chatgpt`` endpoint needs a login with a ChatGPT account:
+
+.. code:: console
+
+   onechat login
+
+The command shows a link and a code. Open the link on any device, enter
+the code, and approve the login. Device code login must be allowed in
+the ChatGPT security settings. OneChat writes the tokens to
+``auth.json`` in the data directory, with mode 0600, and refreshes them
+before they expire. The file belongs to OneChat only. Do not share it
+with the Codex CLI, because each program rotates the refresh token and
+logs the other out.
+
 *************
  Development
 *************
 *************
  Development
 *************
@@ -22,6 +80,10 @@ Or enter it directly:
 
    nix develop
 
 
    nix develop
 
+The shell sets ``ONECHAT_DIR`` to ``.devenv/onechat`` in the checkout,
+unless it is already set. Development data goes there, and Git ignores
+``.devenv``.
+
 Build and run:
 
 .. code:: console
 Build and run:
 
 .. code:: console