Saltar a contenido

Flow Coder

¿Qué es Coder?

Coder es una herramienta de línea de comandos (CLI) que transforma la manera en que los desarrolladores, no desarrolladores y entusiastas de la IA crean y generan código. Coder optimiza el tiempo, aumenta la eficiencia y simplifica la complejidad del desarrollo de nuevas aplicaciones generando código con el poder de la IA.

Únase a nuestra comunidad Flow Coders — Juntos, compartimos y nos conectamos con otros usuarios.

Tech Talk sobre Coder

Acceda al enlace, inicie sesión con su cuenta corporativa

Instalación

Con Python instalado, simplemente instálelo con pip.

Windows

pip install https://storage.googleapis.com/flow-coder/flow_coder-1.3.1-py3-none-any.whl 

Ubuntu / Mac

Nota

Es necesario tener pipx instalado.

pipx install https://storage.googleapis.com/flow-coder/flow_coder-1.3.1-py3-none-any.whl

Nota

No olvide verificar periódicamente si hay actualizaciones en Coder; le avisará la mayoría de las veces. Para actualizar, simplemente ejecute el comando coder update.

Usando Coder

Actualmente, Coder tiene algunos comandos clave que sirven para desarrollar su código. Vea a continuación el paso a paso para usarlos con precisión.

mmd

Autenticación - Coder Auth

  • Add: Añadir una autenticación a Coder. Los usuarios de Flow pueden estar participando en diversos tenants, por lo tanto, es posible añadir varias autenticaciones. Para añadir una autenticación es necesario primero generar un client secret y un client id en Flow. Para ello, inicie sesión en Flow en su tenant deseado, haga clic en las iniciales de su nombre y luego en settings. En la pestaña Your Profile, haga clic en API Keys y luego en Create Api Key, dé un nombre a su llave y guárdela. Se mostrará un panel con los datos; cópielos y péguelos en un lugar seguro, ya que no podrá volver a ver estos valores una vez que haga clic en cerrar.

    coder auth add --tenant <su tenant> --client <su client id> --secret <su client secret> 
    

    Ayuda del comando

    Usage: coder auth add [OPTIONS]
    
    Add a new tenant with its API key and set it as the active.
    
    For generating API keys (client/secret), visit:
    https://flow.ciandt.com/settings/api-keys
    
    Example: coder auth add --tenant my_tenant --client my_client_id --secret
    my_client_secret
    
    Options:
    --tenant TEXT  The tenant ID.  [required]
    --client TEXT  The client ID.  [required]
    --secret TEXT  The client secret.  [required]
    
  • List: Para listar todos los tenants en los que ya ha iniciado sesión, ejecute este comando.

    coder auth list 
    

Inicializar Coder en una carpeta - Coder Init

Elija una carpeta del proyecto en la que trabajará con Coder. Puede ser en la raíz del proyecto, pero también puede ser en una carpeta más interna del proyecto para delimitar el alcance con el que trabajará y facilitar una ventana de contexto más pequeña.

cd carpeta_de_trabajo

coder init

Sesiones - Coder new

Para comenzar a interactuar con la IA es necesario iniciar una nueva sesión. Este comando es similar a iniciar un nuevo chat en la interfaz gráfica. Si inicia una sesión sin nombre, se crea un nombre aleatorio para la sesión.

coder new

Ayuda del comando

Usage: coder new [OPTIONS] [SESSION_NAME]

  Create a new session.

Options:
  -i, --include TEXT  Folder to be included in context. Can be used multiple
                      times.
  -h, --help          Show this message and exit.

Cuando se crea una sesión, se creará una carpeta de la sesión en .coder/sessions/nombre_sesion y en ella contendrá archivos de tipo markdown que se usarán para la comunicación con la IA. Los archivos están constituidos por una numeración seguida del rol; los archivos que contienen __user.md son sus entradas y los que contienen _assistant.md son la respuesta de la IA.

carpeta coder

Abra siempre el último archivo __user.md; en este archivo es donde escribirá su prompt y solicitará algo a la IA.

ejemplo:

prompt de coder

Enviar la solicitud a la IA - Coder Run

Una vez que haya escrito el prompt en el archivo, es momento de enviarlo a la IA y recibir su solución. Simplemente ejecute el comando run.

coder run

Ayuda del comando

Usage: coder run [OPTIONS] [PROMPT]

  Run user prompt in current session.

Options:
  -n, --name TEXT    Specify the session name.
  -a, --apply        Automatically apply the session after running it.
  -b, --bind TEXT    Bind key=value pairs to replace templates, with {{key}}
                     format, present in user prompt.
  -f, --from PATH    Specify a file path to use as the user prompt.
  --no-stdin         Do not read from stdin for the user prompt.
  -o, --output PATH  Write assistant output to PATH or STDOUT (if -o is passed
                     without a value; progress goes to STDERR).
  -h, --help         Show this message and exit.

La respuesta de la IA se entregará en el archivo _assistant.md, prefijado con la misma numeración del archivo __user.md utilizado para el prompt.

respuesta de coder

Aplicando los cambios - Coder Apply

Una vez revisada la respuesta entregada por la IA y si todo está correcto, ejecute el comando para aplicar los cambios directamente en la base de código.

coder apply

Configuración y Ventana de Contexto

Ventana de Contexto

Cada modelo de IA posee una determinada ventana de contexto, que básicamente se refiere a cuántos tokens se pueden enviar en un prompt (un token normalmente representa una palabra, pero no siempre, por lo tanto es difícil de calcular solo contando las palabras). Coder trabaja de forma que envía todo el código del proyecto como parte del prompt. Escanea todos los archivos de la carpeta en la que está operando y envía el contenido de los archivos dependiendo de cómo esté configurado en .coder/config.yaml. Si este contenido supera el número máximo de tokens que el modelo acepta, resultará en un error cuando ejecute coder run.

Configuración

En el archivo de configuración, podrá elegir qué modelo usará y cómo Coder manejará la ventana de contexto. Observe a continuación las posibles opciones.

coder:
  persona: |
    Usted es un experto en codificación.
  model: flow-bedrock-claude-37-sonnet
  context:
    mode: compact
    scope: selected
    selection:
      model: flow-gemini-2.0-flash
      step: 10
      limit: 20

coder

  • persona: Descripción de la persona para el asistente de IA.

    • Por defecto: "Usted es un experto en codificación."
  • model: El modelo de IA utilizado para la generación de código y asistencia.

    • Opciones:
      • flow-openai-gpt-4o
      • flow-openai-gpt-4o-mini
      • flow-bedrock-claude-37-sonnet
      • flow-bedrock-nova-lite
      • flow-gemini-2.5-pro
      • flow-gemini-2.0-flash
      • flow-foundry-deepseek-r1

context

  • mode: El nivel de detalle para el contenido de los archivos.

    • Opciones:
      • full: Incluye el contenido completo del archivo.
      • compact: Incluye una versión reducida del contenido del archivo (experimental).
  • scope: El alcance de los archivos a incluir.

    • Opciones:
      • all: Incluye todos los archivos.
      • selected: Incluye solo archivos seleccionados (experimental).
  • selection:

    • model: Modelo utilizado para seleccionar archivos para el contexto.
    • step: Paso para la nueva selección de archivos en cada ejecución de la sesión.
    • limit: Límite para el número de archivos seleccionados.

Combinaciones de Modo y Alcance

  • full/all: Incluye todos los archivos con contenido completo. Ideal para repositorios más pequeños. Soporta ~10k líneas de código en GPT-4o.
  • full/selected: Incluye archivos seleccionados con contenido completo.
  • compact/all: Incluye todos los archivos con contenido reducido.
  • compact/selected: Incluye archivos seleccionados con contenido reducido. Soporta >200k líneas de código en GPT-4o/Gemini-Flash (experimental).

Elección Basada en las Necesidades del Proyecto

Elija la combinación de modo y alcance según las necesidades de su proyecto en términos de precisión y optimización.

Coder Ignore

Para reducir aún más la ventana de contexto, podemos usar el archivo .coderignore, que ya es generado por coder init. Sigue las mismas reglas y sintaxis que .gitignore.

Para este proyecto es importante añadir los siguientes ítems al .coderignore.

node_modules
site
docs
docx
*.zip
*.pdf
*.docx
*.log
cache
.cache