- Approvals and sandboxes provide different controls.
- Allowed credentials and network destinations are part of the effective boundary.
- Review externally visible actions separately from local file edits.
Automation changes what a development tool can affect
A coding assistant that suggests text has a relatively visible output: a person can inspect the suggestion before inserting it. An agent that runs commands, installs dependencies, edits files, and interacts with external services creates a broader chain of effects. Some are local and easy to reverse. Others reach shared infrastructure. Understanding that chain matters more than the reassuring presence of a sandbox label. The useful question is what a particular session can access and change under its actual configuration.
Visual Studio Code’s current documentation separates approval decisions from sandbox restrictions and explains that supported process isolation is not a virtual machine or a separate user-account boundary. GitHub has also announced cloud and local sandbox experiences. These are documented product directions, with availability and behavior dependent on the selected environment. This article examines the operational implications. It does not claim to have penetration-tested these products or establish that any one configuration is sufficient for every organization’s security requirements.
A permission prompt is not an isolation boundary
An approval prompt decides whether an operation may proceed. A sandbox restricts what an allowed operation can reach. These controls can complement each other, but they should not be confused. A person might approve a test command because it appears routine while the command invokes a script that accesses more than expected. Conversely, a carefully restricted process may be allowed to run automatically because the reachable resources are narrow and the result remains reviewable. The configuration determines the practical consequence.
The prompt itself should describe a concrete operation. Asking whether the assistant may continue gives little help to a reviewer who does not know the next command or destination. For a local code change, a clear patch and relevant validation can be enough to make the work inspectable. For a remote deployment, the target environment and expected effect matter. The purpose of review is to connect intention with an actual change, not to generate a series of habitual clicks that nobody reads.
Network access can widen a small workspace
A session restricted to one project directory may still interact with external services if network access is available. That can be necessary for package downloads, documentation, or a legitimate application test. It can also move information beyond the local machine. A practical policy should identify which destinations are needed for the task and whether the agent can contact internal services. The network policy belongs beside the filesystem policy when someone describes the effective isolation of a session.
Development tools add another layer. A command-line utility may already be authenticated to a source host or cloud account. A package manager may read configuration outside the project. A browser-based test may use an existing session. These are useful conveniences for a human developer, but they can change an agent’s capabilities without appearing in the prompt. The safest evaluation uses a concrete inventory of the tools and credentials intentionally available, rather than assuming that a fresh chat means a fresh machine.
Repository content is information, not authority
Agents often read documentation, comments, issue text, and third-party files while working. Those sources can contain useful instructions about the project, but they can also contain irrelevant or adversarial text. The agent should not treat every sentence it encounters as authorization to use credentials, publish changes, or contact another service. A source file describing an example deployment is not the same thing as a user requesting a production deployment. Keeping those roles distinct is a basic requirement for trustworthy automation.
A team can make legitimate project guidance easier to recognize by keeping it concise, maintained, and located consistently. Guidance should explain the build, validation, and review process without embedding secrets or broad permissions. External material should be treated as evidence to interpret. If a task requires an additional privileged operation, the reason should come from the user’s goal and the project’s actual workflow. This reduces the chance that incidental text changes the scope of the work simply because the agent happened to read it.
Use reversibility to structure the workflow
Many development tasks can be prepared fully before an external action is needed. An agent can inspect the problem, edit the code, run appropriate checks, and present the diff. That produces a concrete result for review. The same principle applies to configuration changes: prepare the exact values and target before committing them. This organization lets the agent do useful work autonomously while preserving a clear boundary around effects that other people or systems will immediately experience.
Recovery should be designed as part of that workflow. A local change is easier to understand when the working tree is cleanly scoped and existing user edits are preserved. A remote change is easier to investigate when its commit, environment, and deployment identifier are recorded. A failed operation should report what is known to have happened and what remains uncertain. Retrying blindly can be worse than stopping at an uncertain boundary, especially when the operation creates a resource or sends a message.
Record exceptions explicitly. If a particular diagnostic must run with wider access, identify the command, the reason, the additional resources exposed, and the point at which the narrower policy resumes. An exception that remains enabled after the task finishes can quietly become the new default. This is a configuration-management concern rather than a reason to forbid useful diagnostics. Making the exception visible lets the team complete necessary work while retaining an accurate picture of what the session was allowed to do.
Evaluate with ordinary mistakes as well as adversarial cases
A useful pilot includes benign but inconvenient situations: a missing dependency, a failing test, an expired credential, an unavailable network destination, and a repository with unrelated uncommitted edits. Observe whether the agent explains the limitation, preserves existing work, and asks for the right information. These cases reveal how the system behaves when the happy path ends. They also test whether the organization’s guidance is understandable without requiring staff to intervene at every routine step.
Coding-agent isolation is a continuing configuration responsibility, not a one-time badge. As tools, credentials, and tasks change, the effective boundary can change with them. A dependable setup makes that boundary inspectable and aligns it with the work being requested. The result should be an agent that can make and validate useful changes within a known scope, with clear evidence before actions that reach beyond it. That is a more meaningful standard than either unlimited autonomy or a prompt for every command.
Sources & further reading
Primary references inform the reporting. Our explanations, scenarios, and conclusions are editorial analysis; source statements are not independent test results.
- Visual Studio Code: Sandbox Copilot agent sessionscode.visualstudio.com
- Visual Studio Code: Secure AI-assisted developmentcode.visualstudio.com
- GitHub Changelog: Cloud and local sandboxes previewgithub.blog
Source publication or reference date: 2026-11-04.
See an error or an important update? Contact the editors.



