Skip to main content
Unblocked Code is a remote coding environment deeply integrated into Unblocked. It is ideal for unattended tasks that the latest frontier AI coding models can typically complete within a few hours.
  • Relevant context — For each coding task, Unblocked Code uses the Unblocked Context Engine to draw on relevant code, pull requests, issues, documentation, and team discussions. It uses only the data sources that the requesting user has permission to access.
  • Runs remotely — Tasks run remotely and continue in the background if you close Unblocked or shut down your computer.
  • Works everywhere — Unblocked Code integrates smoothly everywhere you already chat with Unblocked, so you can naturally hand off work when a conversation leads to a coding task.
Unblocked Code is currently available in private beta. There is no additional charge during the beta period. Initially, it supports only organization-owned repositories hosted on GitHub.com. Contact us to request access.

How it works

Ask Unblocked to do coding work wherever you already chat with it: tag @Unblocked in Slack, use the Unblocked web or Mac app, or mention @unblocked in a pull request comment. Coding work can span multiple repositories. Unblocked launches a separate task and creates a separate pull request for each repository.
Start a coding task from the Unblocked app
1

Confirm the task

Unblocked may ask questions to clarify your requirements. It then asks you to confirm the coding task before starting it.
2

Track the task

The task runs in the background. At any time, you can ask Unblocked to check its status, list your current tasks, or cancel it.
3

Review the pull request

When the task is complete, Unblocked opens a draft pull request for you to review.

Initial setup

For most teams, no setup is required. If your team is prompted to approve updated permissions for the existing Unblocked GitHub App, a GitHub organization owner must accept the contents:write permission before Unblocked Code can push code and open pull requests. Accept permissions for the Unblocked GitHub App

Configure the code environment

Unblocked Code can usually determine how to build and test a repository from its setup instructions, build files, and CI configuration. More complex repositories may require secrets or custom code init scripts. Administrators configure global secrets and a global code init script under SettingsCoding Tasks. Configure the Unblocked Code environment

Secrets

Secrets provide access to private dependencies and external services, such as npm registries, Artifactory, or services on an internal network. You can make a secret available to all connected repositories or limit it to one. A repository-specific secret overrides a shared secret with the same name.

Code init scripts

Unblocked supports three optional code init scripts that run at specific points in the coding-task setup flow:
  1. The global code init script, configured under SettingsCoding Tasks, installs any software required in the coding environment.
  2. The .unblocked/code-init-before-clone.sh repository script runs before Unblocked clones the repository. Use it to install repository-specific software and dependencies that are fixed or pinned to a specific version.
  3. The .unblocked/code-init-after-clone.sh repository script runs after Unblocked clones the repository. Use it to run tools from the repository and install floating dependencies that should resolve against its current contents.
Coding task lifecycle with code init scripts Coding task lifecycle with code init scripts Unblocked runs the applicable scripts whenever it creates a coding-task machine or an SSH test machine. Keep these points in mind:
  • The scripts run as root on Ubuntu 22.04 LTS, so you don’t need sudo.
  • Reference configured secrets through environment variables, such as $NPM_TOKEN, rather than writing their values into a script. Unblocked exposes each secret to the code init scripts only while they run, so the value never appears in the scripts themselves. Configured secrets are also available to the Unblocked Code agent while a task runs. Wrap references in double quotes ("$NPM_TOKEN") so the shell expands them safely.
  • Run apt-get update before installing packages, and prefer apt-get over apt in scripts.
  • The scripts can run arbitrary Bash.
Because the global code init script is ordinary Bash running as root, you can provision any language runtime, container tooling, or private network access your builds require. Here are some common starting points:

Network access

Unblocked Code environments have internet access. Outbound connections egress through the following IP addresses, which you can allowlist when an external service restricts access by source IP:
  • 44.236.159.233/32
  • 44.255.222.154/32

Test with SSH

To test a repository’s environment, select it from the Repository filter and click Connect via SSH. Unblocked creates an ephemeral machine using the configured secrets and all applicable code init scripts. This machine reproduces the task environment but does not run the Unblocked Code agent. Select Close to delete the machine when you’re finished. The machine also shuts down automatically after four hours. Unblocked preparing the SSH environment The SSH connection uses the ubuntu user, which has sudo access. Commands you run interactively may require sudo, even though the code init scripts do not because they run as root. To troubleshoot setup, check /var/log/cloud-init-output.log. Changes made directly on the machine are not saved, so copy any changes you want to keep into the appropriate code init script.