Built-in tool

Work with files and code

Run code, edit files, clone/pull/push GitHub repositories and use persistent terminals.

Freeno per-call chargeNo API key needed

Endpoint

Parameters

NameTypeRequiredNote
codestring · optionalstringoptional

Python or JavaScript. Working directory persists between turns. Python: from connie import tools; tools.call(name, args, key="stable-step"). JavaScript: const { tools } = await import("connie"); await tools.call(name, args, {key:"stable-step"}). A step key uses only letters, digits and _ . : - (at most 160 characters).

appIdstring · optionalstringoptional

Managed app for custom commands or dependency installation. For source reads/edits and preview/build, use app-manage. Uses the app’s private source scope; omit repositoryMode, github, terminal and previewPort. Keep dependencies/caches outside source and include a package-lock.json.

filesobject · optionalobjectoptional

Optional text/code files to write before execution. Paths are relative to the workspace.

Default: []

githubobject · optionalobjectoptional

Authenticated GitHub transport using a connected account. Credentials stay on the host. Clone/pull run before code; push runs after successful code and only fast-forwards the explicit branch. Use git locally for commits/status/diff; use this field for network writes.

publishobject · optionalobjectoptional

Workspace file paths to publish as downloadable chat attachments after execution. All workspace files are also checkpointed automatically.

Default: []

languagestring · optionalstringoptional

One of: python, javascript

Default: python

terminalobject · optionalobjectoptional

Persistent interactive shell or dev server. Start with command; read/input/stop with returned terminalId. Input is literal text (include newline to submit; \u0003 interrupts). Output is bounded. Processes end after one hour or sandbox inactivity; never automatically restart after VM replacement.

previewPortnumber · optionalnumberoptional

Open a browser artifact for a running dev server in this conversation’s coding sandbox. Start the server with terminal first, listening on 0.0.0.0. The host resolves a short-lived private preview; no credentials are returned.

repairJobIdstring · optionalstringoptional

Correct a failed program: provide its job ID and corrected code. Keeps original language, files, publish paths and completed tool receipts. Keep stable keys/arguments for completed tool steps. Up to three corrections per job.

resumeJobIdstring · optionalstringoptional

Resume an interrupted or approved job without changing its code or repeating completed tool calls.

attachmentIdsobject · optionalobjectoptional

Original attachments to load into inputs/. Returned input paths identify the files.

Default: []

repositoryModeboolean · optionalbooleanoptional

Enable a coding workspace: checkpoint Git history, executable files and safe relative symlinks; exclude untracked dependency caches. Edits survive failed tests. This mode remains active for this conversation.

timeoutSecondsnumber · optionalnumberoptional

Default: 300

Get started

How to use this tool

  1. Connect your AI

    Add Connie to ChatGPT, Claude or Slack once, and this tool comes with it. There’s no API key or account to set up.

  2. Ask for the outcome

    Describe what you need in plain words. Your AI runs this tool when the job calls for it, along with any others it needs.

  3. Make it a workflow

    Add it as a step in a workflow that runs the same way every time, on a schedule or when something happens.

  4. Stay in control

    Choose whether it runs on its own or asks first. When it asks, you see an Allow or Deny card before any credits are spent.