> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flexinference.com/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenWork

> Dirija OpenWork a FlexInference importando un paquete de configuración de OpenCode.

OpenWork impulsa un backend de OpenCode, por lo que el archivo que escribe es un archivo de configuración de OpenCode. El backend lee la entrada del proveedor de este.

OpenWork no ofrece un lugar para configurar `start_within` en su propia interfaz de usuario, por lo que el plazo depende de la clave. Cree una primero: consulte [claves de agente](/es/agent-keys).

## Configúrelo con un agente

Abra el bloque siguiente y cópielo en cualquier agente de codificación. El prompt nunca le pedirá su clave de API: el agente configura todo lo demás y luego imprime la línea de exportación para que la ejecute usted mismo.

<Accordion title="Copiar prompt de configuración del agente">
  ```text theme={null}
  Configure OpenWork to send its requests to FlexInference. OpenWork drives an OpenCode backend, so the file you write is an OpenCode config file that OpenWork imports into its profile.

  You will never see or handle my API key. The provider entry stores only the `{env:FLEXINFERENCE_API_KEY}` template, and I export the value myself. Do not ask me for the key, and do not read it from my environment.

  1. Create a directory named `config/` beside my OpenWork checkout and put `opencode.json` in it with this content:

  {
    "$schema": "https://opencode.ai/config.json",
    "model": "flexinference/gpt-5.6-sol",
    "provider": {
      "flexinference": {
        "name": "FlexInference",
        "env": ["FLEXINFERENCE_API_KEY"],
        "npm": "@ai-sdk/openai-compatible",
        "options": {
          "apiKey": "{env:FLEXINFERENCE_API_KEY}",
          "baseURL": "https://api.flexinference.com/v1"
        },
        "models": {
          "gpt-5.6-sol": {
            "name": "GPT-5.6 Sol",
            "reasoning": true,
            "tool_call": true,
            "limit": { "context": 400000, "output": 128000 }
          }
        }
      }
    }
  }

  2. Find the OpenCode binary OpenWork should drive and note its path.

  3. Give me the launch command, with the binary path filled in:

  OPENWORK_ELECTRON_USERDATA="$PWD/.openwork-flex-userdata" \
  OPENWORK_DATA_DIR="$PWD/.openwork-flex-data" \
  OPENWORK_DEV_OPENCODE_IMPORT_CONFIG_DIR="$PWD/config" \
  OPENWORK_OPENCODE_BIN=<path to the opencode binary> \
    pnpm dev

  4. Print this line for me to run in that same shell. Do not run it and do not ask for the value:

     export FLEXINFERENCE_API_KEY=<paste your key here>

     OpenWork passes its parent environment to the backend, which is how the value reaches the provider entry.

  5. Add `.openwork-flex-userdata/` and `.openwork-flex-data/` to `.gitignore` if this is a Git repository.

  Rules that matter, do not deviate:
  - OpenWork ignores a config file in the working directory. The bundle only reaches the backend through `OPENWORK_DEV_OPENCODE_IMPORT_CONFIG_DIR`.
  - The import only runs when `OPENWORK_DEV_MODE=1`, which `pnpm dev` sets. A production launch skips it entirely.
  - Reuse the same `OPENWORK_ELECTRON_USERDATA` and `OPENWORK_DATA_DIR` paths on every launch, or you start a fresh profile and lose session history. The copy overwrites on each launch but never deletes.
  - Keep `options.apiKey` as the literal `{env:FLEXINFERENCE_API_KEY}` template. Never inline my key.
  - The top-level `model` field is what selects the provider. Without it the backend stays on its built-in default.

  Report what you created and give me the exact command to run.
  ```
</Accordion>

## Configurar OpenWork

1. Coloque un `opencode.json` en su propio directorio. Utilice la entrada del proveedor de [OpenCode](/es/opencode).
2. Exporte la clave en la shell que inicia OpenWork.

```bash theme={null}
export FLEXINFERENCE_API_KEY=flex_live_...
```

3. Inicie OpenWork con la ruta de importación configurada.

```bash theme={null}
OPENWORK_ELECTRON_USERDATA="$PWD/.openwork-flex-userdata" \
OPENWORK_DATA_DIR="$PWD/.openwork-flex-data" \
OPENWORK_DEV_OPENCODE_IMPORT_CONFIG_DIR="$PWD/config" \
OPENWORK_OPENCODE_BIN=/path/to/opencode/binary \
  pnpm dev
```

OpenWork mantiene el backend en un perfil aislado, por lo que ignora un archivo de configuración en su directorio de trabajo. Copia el directorio nombrado en el perfil al iniciar, luego inicia el backend con `OPENCODE_CONFIG_DIR` configurado a esa copia.

`pnpm dev` establece `OPENWORK_DEV_MODE=1`, que es lo que activa la importación.

OpenWork pasa el entorno padre al backend, que es como el valor llega a la entrada del proveedor.

## El alcance proviene del perfil, no de la carpeta

OpenWork no lee la configuración de su directorio de trabajo, por lo que la división global y por proyecto que ofrece [OpenCode](/es/opencode) no se aplica aquí. El alcance proviene del perfil contra el que se inicia.

| Alcance    | Qué lo configura                                   | Se aplica a               |
| ---------- | -------------------------------------------------- | ------------------------- |
| Un perfil  | `OPENWORK_ELECTRON_USERDATA` y `OPENWORK_DATA_DIR` | cada sesión en ese perfil |
| El paquete | `OPENWORK_DEV_OPENCODE_IMPORT_CONFIG_DIR`          | lo que el perfil importe  |

Mantenga un par de rutas de perfil por cada configuración entre las que desee alternar. El mismo paquete importado en dos perfiles le proporciona dos configuraciones aisladas, cada una con su propio historial de sesión.

Reutilice las rutas anteriores para mantener un perfil. Cámbielas para iniciar uno nuevo.

## La importación se copia en cada inicio y nunca se elimina

La copia se ejecuta en cada inicio y sobrescribe. Edite el paquete, reinicie con las mismas rutas `OPENWORK_ELECTRON_USERDATA` y `OPENWORK_DATA_DIR`, y el backend leerá el nuevo archivo.

Nunca se elimina. Un archivo que eliminó del paquete permanece en la copia del perfil. Para borrarlo, necesita nuevas rutas para ambas variables, lo que reinicia el perfil y pierde su historial de sesión. Haga esto solo cuando un archivo sobrante esté estorbando.

## Confirmar que la clave se aplicó

Cada respuesta viene con `x-flexinference-defaults-applied`. Ni el backend ni la interfaz de usuario de OpenWork muestran los encabezados de respuesta, así que lea la solicitud en el panel de control en **Logs** en su lugar.

## Solución de problemas

**La importación nunca se ejecutó.** `OPENWORK_DEV_MODE=1` es lo que la habilita, y `pnpm dev` lo establece. Un lanzamiento de producción omite la importación.

**Una edición de configuración no cambió nada.** La copia se ejecuta por lanzamiento, pero solo en el perfil que se le dio. Reinicie con las mismas rutas `OPENWORK_ELECTRON_USERDATA` y `OPENWORK_DATA_DIR`.

**Un archivo que eliminó todavía está cargado.** La copia sobrescribe pero nunca elimina. Inicie un perfil nuevo con nuevas rutas para ambas variables, aceptando la pérdida del historial de sesión.

**Las solicitudes nunca nos llegan.** El campo `model` de nivel superior en el paquete es lo que selecciona el proveedor. Sin él, el backend permanece en su valor predeterminado incorporado.

**[`401 invalid_api_key`](/es/errors#invalid_api_key).** `FLEXINFERENCE_API_KEY` no está configurada en la shell que inició OpenWork. Exporte allí, ya que el backend hereda el entorno de esa shell.

Consulte [errores](/es/errors) para cada rechazo que devolvemos, [claves de agente](/es/agent-keys) para los que no son específicos de OpenWork, y [OpenCode](/es/opencode) para la entrada del proveedor y las opciones de plazo por modelo.
