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

# Trae tu propio agente

> Apunta tu propio agente de codificación de IA, o tus propios scripts, al entorno en la nube que contiene el código de tu app

Trae tu propio agente de codificación de IA, o tus propios scripts, a una app de Base44 conectándote a su sandbox. El sandbox es un entorno en la nube privado que contiene el código de la rama actualmente activa en el editor de app, y ejecuta su servidor de desarrollo. Es el mismo entorno, y el mismo código, que edita el propio editor de app de Base44, sin ninguna bifurcación o copia que mantener sincronizada. Cuando escribes un archivo a través de un comando de sandbox, estás cambiando tu app real directamente, en su rama activa, de la misma forma que lo haría el editor de app.

Esto te permite desarrollar una app con tus propias herramientas en lugar del editor de app, sin checkout local y sin nada que instalar. Trabaja en una app desde una máquina que no tiene copia de ella, o programa un cambio en una app que construiste completamente en el editor de app.

<Note>
  Editar a través del sandbox no es lo mismo que publicar. Tu edición se convierte en parte del código de la app de inmediato y aparece en el editor de app y en su vista previa en vivo, pero llegar al sitio público de la app aún requiere el mismo paso de publicación que requeriría un cambio hecho en el editor de app.
</Note>

<Warning>
  Necesitas un [**plan Builder**](/Account-and-billing/Billing-and-plans) o superior para acceder al sandbox de una app desde fuera del editor de app. Sin uno, los comandos fallan con `PREMIUM_REQUIRED`.
</Warning>

El sandbox en sí es un proceso de computación en vivo, no solo almacenamiento: se detiene cuando permanece inactivo durante un tiempo, y se reinicia con el siguiente comando. Tu código no se ve afectado de ninguna manera, ya que vive en git en lugar de en ese proceso. Si el sandbox no se está ejecutando actualmente, el primer comando lo inicia, y esa llamada tarda más que las siguientes.

## Dos formas de conectarse

El sandbox expone el mismo conjunto de operaciones a través de dos superficies, respaldadas por la misma implementación. Usa la que se ajuste a tu configuración.

* **[CLI](/developers/references/cli/get-started/overview):** Adecuado para todo lo que se ejecute en tu propia máquina, incluido un agente de codificación local y tus propios scripts. Autentícate una vez con [`base44 login`](/developers/references/cli/commands/login), luego apunta a la app con [`--app-id`](/developers/references/cli/commands/introduction#select-a-target-app) o la variable de entorno `BASE44_APP_ID`. No se requiere un proyecto local.
* **[Servidor MCP](/developers/backend/overview/mcp-server):** Adecuado para un asistente de IA que se conecta a través de MCP, incluidos asistentes basados en web que no pueden ejecutar una CLI en absoluto. Conéctalo una vez y autoriza con OAuth.

| Operación                        | Comando CLI                                                                    | Herramienta MCP     |
| -------------------------------- | ------------------------------------------------------------------------------ | ------------------- |
| Listar un directorio             | [`sandbox ls`](/developers/references/cli/commands/sandbox-ls)                 | `list_directory`    |
| Leer archivos                    | [`sandbox read`](/developers/references/cli/commands/sandbox-read)             | `read_file`         |
| Buscar contenido de archivos     | [`sandbox grep`](/developers/references/cli/commands/sandbox-grep)             | `grep`              |
| Crear un archivo                 | [`sandbox write`](/developers/references/cli/commands/sandbox-write)           | `write_file`        |
| Cambiar un archivo existente     | [`sandbox edit`](/developers/references/cli/commands/sandbox-edit)             | `edit_file`         |
| Ejecutar un comando shell        | [`sandbox run`](/developers/references/cli/commands/sandbox-run)               | `run_command`       |
| Guardar un punto de restauración | [`sandbox checkpoint`](/developers/references/cli/commands/sandbox-checkpoint) | `create_checkpoint` |

Los conectores no pasan por el sistema de archivos del sandbox, así que no están en la tabla de arriba. Para configurar un conector en una app con la que estás trabajando de esta forma, usa [`connectors initiate`](/developers/references/cli/commands/connectors-initiate) en su lugar. Apunta al mismo id de app directamente, sin un sandbox o un proyecto local.

<Tip>
  La forma más rápida de empezar con tu propio agente de codificación es usar **Send to Coding Agent** en el editor de app de Base44. En escritorio, abre **More actions** (los tres puntos junto a **Publish**, en la esquina superior derecha) y selecciona **Send to Coding Agent**. Elige un agente CLI local o un chat web, y te entrega un prompt listo para pegar, así no tienes que configurar nada de esto a mano. No está disponible para apps móviles o apps con código fuente no gestionado.
</Tip>

## Los cambios se guardan automáticamente

Una llamada a [`sandbox write`](/developers/references/cli/commands/sandbox-write) o [`sandbox edit`](/developers/references/cli/commands/sandbox-edit) confirma el cambio por ti como parte de la misma solicitud, antes de que el comando devuelva, así que no hay un paso separado de guardar, desplegar o hacer push. Un cambio de archivo hecho a través de [`sandbox run`](/developers/references/cli/commands/sandbox-run), como `rm` o `mv`, confirma unos segundos después en su lugar, una vez que se cierra una ventana corta de debounce. Si escribes o editas de nuevo antes de que un commit debounced anterior haya aterrizado, la nueva llamada espera por él y falla con `COMMIT_FLUSH_PENDING` si no puede confirmar que ese commit terminó a tiempo. Una vez que un commit aterriza:

* El cambio es visible en el editor de app de Base44.
* Es seguro incluso si el entorno de computación del sandbox se recicla tras estar inactivo, ya que uno nuevo siempre parte de tu último commit en lugar de una instantánea más antigua.
* Se incluye la próxima vez que publiques la app.

Los recursos estructurados se sincronizan de la misma forma: a diferencia de un proyecto local, donde ejecutarías [`entities push`](/developers/references/cli/commands/entities-push) o [`functions deploy`](/developers/references/cli/commands/functions-deploy) después de añadir un archivo, crear `base44/functions/send-email/entry.ts` en el sandbox es todo lo que se necesita para añadir esa función.

<Warning>
  * No ejecutes [`deploy`](/developers/references/cli/commands/deploy), [`functions deploy`](/developers/references/cli/commands/functions-deploy), [`entities push`](/developers/references/cli/commands/entities-push), ni los otros comandos push contra una app que estás editando en su sandbox. Esos comandos sincronizan un proyecto local con Base44, y no hay proyecto local cuando trabajas con un sandbox.
  * Si tu última acción fue un comando shell ejecutado a través de `sandbox run` en lugar de una llamada `write` o `edit`, su commit aún va un momento por detrás. Dale unos segundos antes de desconectarte.
</Warning>

## Checkpoints

Un checkpoint es un punto de restauración en el historial de versiones de la app, anclado a un commit específico. Crea uno con [`sandbox checkpoint`](/developers/references/cli/commands/sandbox-checkpoint) para marcar un estado conocido como bueno, luego restaúralo desde el editor de app si un cambio posterior sale mal. Los cambios pendientes se confirman antes de tomar el checkpoint, así que siempre captura tu código más reciente.

## Trabajar junto al editor de app

Tu agente de codificación y el editor de app de Base44 pueden trabajar en la misma app al mismo tiempo. No hay bloqueo que adquirir y no hay sesión que liberar. Los cambios de cualquier lado aterrizan en el mismo lugar, así que trátalo como tratarías a un compañero editando el mismo proyecto.

<Warning>
  No hay paso de merge. Si tu agente de codificación y el editor de app cambian el mismo archivo al mismo tiempo, la escritura que aterrice al final gana, y el cambio anterior desaparece. Evita que ambos lados toquen el mismo archivo en el mismo tramo de trabajo.
</Warning>

## Permisos

Dos comprobaciones separadas controlan el acceso al sandbox: si puedes acceder a esta app en absoluto, y si a tu sesión actual se le concedió acceso de escritura.

### Acceso a la app

Necesitas acceso de administrador a la propia app, ya sea como administrador del espacio de trabajo o como colaborador en esta app específica. El acceso se comprueba en cada llamada, así que un cambio en tu rol del espacio de trabajo tiene efecto de inmediato.

Un simple viewer del espacio de trabajo no puede llegar al sandbox en absoluto. La única excepción es un viewer que también tiene un rol heredado de editor por app de antes de que tu espacio de trabajo se moviera al acceso basado en roles. Esa combinación aún puede leer del sandbox, pero no cambiar nada. Los superagentes no admiten los comandos de sandbox.

### Alcance de sesión

Más allá del acceso a la app, leer y cambiar el sandbox requieren diferentes permisos en tu sesión:

| Comandos                                                             | Permiso necesario                  |
| -------------------------------------------------------------------- | ---------------------------------- |
| `sandbox ls`, `sandbox read`, `sandbox grep`                         | `apps:read`, concedido por defecto |
| `sandbox write`, `sandbox edit`, `sandbox run`, `sandbox checkpoint` | `sandbox:write`                    |

Los permisos de tu sesión se fijan cuando se crea y no se pueden ampliar más tarde. La CLI pide `sandbox:write` durante `base44 login`, y sobre MCP lo concedes en el paso de consentimiento OAuth. Renovar una sesión existente no lo añade.

Así que si los comandos de lectura funcionan pero los de cambio fallan con `NOT_AUTHORIZED`, estás en una sesión que nunca tuvo `sandbox:write`. Ejecuta [`base44 login`](/developers/references/cli/commands/login) de nuevo, o reconecta el servidor MCP y aprueba el acceso al sandbox, para iniciar una sesión que lo tenga.

## Límites y barandillas

Los comandos de archivo están confinados a la raíz de la app. Las rutas absolutas y las rutas que suben por encima de la raíz se rechazan con `PATH_OUTSIDE_SANDBOX`. Los directorios `.agents` y `.git` no son alcanzables desde los comandos de archivo, y fallan con `PROTECTED_PATH`, porque contienen los secretos de tu app y credenciales del repositorio. La única excepción es `.agents/skills`, que puedes leer y escribir para que tu agente pueda trabajar con las [skills](/developers/backend/overview/skills) que la app tiene instaladas.

En toda la función, tienes un límite de 120 solicitudes de lectura, 60 solicitudes de cambio y 30 comandos de ejecución por minuto, por app. Superar cualquiera de estos falla con `RATE_LIMITED`. La página de referencia de cada comando cubre sus propios límites de tamaño y recuento, como cuántas rutas acepta `sandbox read` o cuán grande permite `sandbox write` un archivo.

## Consulta también

* [Servidor MCP de Base44](/developers/backend/overview/mcp-server): Conecta un asistente de IA a tu cuenta de Base44
* [Resumen de CLI](/developers/references/cli/get-started/overview): Instala y usa la CLI de Base44
* [Estructura del proyecto](/developers/backend/overview/project-structure): Cómo se organizan los archivos del proyecto de Base44
* [Desarrollo local](/developers/backend/overview/local-dev/local-development-overview): Ejecuta un proyecto de Base44 en tu propia máquina
* [Skills](/developers/backend/overview/skills): Enseña a los agentes de codificación de IA a trabajar con Base44
* [`connectors initiate`](/developers/references/cli/commands/connectors-initiate): Configura un conector en una app sin un sandbox o proyecto local

<Note>Esta página fue traducida con IA. Para obtener la información más precisa y actualizada, consulta la [versión en inglés](/). </Note>
