jcode Windows installation tutorial: multi-session AI programming, browser tools and background mode

Introduces jcode installation, TUI, multi-session recovery, background services and Firefox browser tool configuration on Windows.

jcode is a terminal AI programming agent developed in Rust with a focus on multi-session, low resource usage, and scalable workflows. It supports interactive TUI, single non-interactive tasks, background services, and built-in Firefox browser control tools.

Project address: 1jehuang/jcode

Windows Quick Installation

Officially supports Windows 11 and PowerShell 5.1 or above:

1
irm https://jcode.sh/install.ps1 | iex

The installation script is a type of remote code execution. Cautious users should first download and review the content before running it with normal user permissions. After installation, open a new terminal and execute:

1
jcode

Common commands

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 启动交互式 TUI
jcode

# 执行一次任务
jcode run "say hello"

# 恢复名为 fox 的会话
jcode --resume fox

# 启动后台服务并连接
jcode serve
jcode connect

Background mode is suitable for maintaining a session in a process and accessing it from other terminals. Do not have multiple sessions modifying the same files in the same repository at the same time unless you have divided the tasks into directories, branches, or other isolation boundaries.

Configure browser tools

jcode has built-in browser tools, and the current official access is Firefox Agent Bridge. First check the status and perform setup:

1
2
jcode browser status
jcode browser setup

Once completed, the Agent can open the page, read snapshots, click, enter, upload files, take screenshots, and execute page scripts. The first test should use a public page without an account, confirm the tool permissions and browser profile, and then touch the login status.

How to avoid conflicts in multiple sessions

  1. Each session is only responsible for one clear task;
  2. Record the current Git status before modification;
  3. Do not allow two sessions to run formatting and dependency updates at the same time;
  4. Database migration, lock files and shared configuration are handed over to a separate session;
  5. Check git diff before merging, do not rely solely on Agent summary.

The low memory footprint of jcode makes it easy to open multiple sessions, but sufficient resources do not mean that file writing is inherently safe. The key to concurrent work is still task boundaries.

What should be confirmed before installation?

jcode provides PowerShell installation scripts on Windows. Confirm before running:

  • The system is a supported version of Windows;
  • PowerShell has access to jcode.sh;
  • The installation directory and PATH are modified to comply with company policies;
  • Git is installed and working in the project;
  • Model Provider, certification method and fee are acceptable;
  • Security software does not silently quarantine downloaded binaries.

It is not recommended to install using the administrator terminal unless the official documentation clearly states that it is required. The Agent itself also tries to run under ordinary user permissions.

How to choose between TUI, run and serve

Interactive TUI

1
jcode

Ideal for exploring projects, ongoing discussions, and step-by-step approval of tool calls. First time use should start in this mode as it is easiest to observe the Agent’s plans and commands.

Single non-interactive task

1
jcode run "summarize the repository structure without editing files"

Good for scripts or quick queries. When using it for automation, you need to confirm the exit code, standard output and failure handling. You cannot just judge whether the command generates text.

Restore session

1
jcode --resume fox

The session name is easier to remember, but you still need to check the current working directory and Git status after recovery. The code might have been modified by someone else while the session was paused.

Background service

1
2
jcode serve
jcode connect

Suitable for long-term retention of Agent processes or access from multiple terminals. Background services involve listening addresses, authentication, and session persistence and should not be exposed to the LAN or public network without confirming the configuration.

  1. Start jcode in the test repository;
  2. Let it specify the working directory and Git branch;
  3. Perform read-only directory analysis;
  4. Let it correct a document typo;
  5. View actual git diff;
  6. The running project has been tested;
  7. Exit and restore with --resume;
  8. Verify that the session understands the latest file status.

Only after these steps are stable, use background and multi-session.

Multi-session isolation solution

Divided by directory

Suitable for completely independent sub-projects. Only one explicit directory can be written to per session, shared configuration is handled by the main session.

Divided by Git Worktree

Creating separate Worktrees and branches for each task reduces file coverage. The disadvantage is that dependencies, build cache and database need to be managed separately.

Read-only exploration session

Let one session be responsible for searching and planning, and explicitly disable writing files; another session is responsible for implementation. This reduces the probability of two implementation sessions changing code at the same time.

Regardless of which method you use, do not allow multiple sessions to modify lock files, database migrations, and global configurations at the same time.

Browser tool permission description

jcode’s browser tools can perform: open pages, read content, locate interactive elements, click, enter, fill out forms, take screenshots, upload and execute scripts. Different actions have different risks:

Action Risk Recommendation
Open and read public pages Low Can be used for first testing
Click and Scroll Medium Confirm that the action will not be committed
Form input Medium to high Do not enter real password and token
Upload files High Use specialized test files
Execute page scripts High Limit sites and purposes
Use Login Profile High Single Profile, Least Privilege

Browser automation should not use daily profiles by default, otherwise the agent may be exposed to mailboxes, cloud platforms, and logged-in backends.

Firefox Agent Bridge Troubleshooting

First run:

1
jcode browser status

If the status is abnormal, execute again:

1
jcode browser setup

If it still fails, check the Firefox version, Bridge installation status, whether the browser is started, whether the Profile is correct, and whether the security software is blocking local communication. Don’t repeatedly have the model try to click when the Bridge is not connected.

Security boundary of background service

Before using jcode serve, check the listening address, port and authentication method. Safety practices include:

  • By default, only the local machine is monitored;
  • Forward ports directly without going through a router;
  • Use controlled tunnels or VPNs for remote access;
  • Do not inject irrelevant cloud platform keys into the service environment;
  • Regularly clean up sessions that are no longer needed;
  • Log connection sources and tool calls.

“Background running” is just a process form, which does not mean that it has a multi-user server security design.

How to understand performance data

The repository provides memory comparisons with other CLI Agents, but these numbers depend on version, operating system, number of sessions, and feature switches. When evaluating you should measure within your own project:

  1. Free single session memory;
  2. Total memory for ten sessions;
  3. Changes after turning on local Embedding;
  4. Startup and recovery time for long sessions;
  5. Additional resources for browser tool runtime.

Low memory is good for concurrency, but model API latency, tool stability, and write conflicts also impact actual efficiency.

Common fault matrix

Phenomenon Check content
Installation script failed Network, execution policy, installation log
Command not in PATH New terminal, user installation directory
Provider authentication failed Key, API Base, model name and quota
Outdated recovery session content Current directory, branch, and file changes
Two sessions overwriting each other Write boundaries with Worktree
Browser status abnormality Firefox Bridge and Profile
serve Unable to connect Service process, listening address, port and firewall

FAQ

Command not found after Windows installation

Open a new terminal and check PATH. If the script is installed in the user directory, confirm that the directory has been added to the environment variables of the current account.

Browser settings are completed but Agent cannot click

Run jcode browser status to confirm that Firefox Bridge is connected. Then check whether the permission confirmation, download window or login page pops up on the target page.

Is it a suitable replacement for Codex or Claude Code?

Substitution depends on the model, tools, approval mechanisms, and team processes. The advantage of jcode is multi-session and extensible terminal framework, but the code quality still depends on the model and task constraints.

Can Windows PowerShell 5.1 be installed?

The official installation instructions indicate that PowerShell 5.1 or above is supported. If the enterprise enforces policies to block scripts, they should be reviewed and signed according to organizational regulations and should not be bypassed by turning off security policies.

Is jcode run suitable for CI?

Research is possible, but you must pin versions, restrict permissions, handle exit codes, and avoid giving production keys to untrusted PRs. Verify it first in a read-only check task.

Will multiple clients sharing the context when connecting to the same service?

Specific session and client behavior should be subject to current documentation and actual testing. Do not assume that the client is naturally isolated before use, verify it with a test session without sensitive data.

Why does Provider configuration need to be verified separately?

jcode is Agent Harness, and the final answer quality and tool invocation still rely on the model provider. After configuration, test respectively: short dialogue, long file reading, structured tool invocation, code editing and error recovery. Don’t just use “say hello” to judge that the entire environment is available.

If the Provider uses a custom API Base, also check TLS, proxies, model names, context constraints, and streaming responses. Teams should use separate keys and budgets for jcode to avoid sharing unlimited credentials with other production services.

Logs, telemetry and sensitive information

Long sessions may contain source code, command output, web page content, and error logs. Before enabling background services, confirm the session storage location, retention period, and deletion method. Form content entered by the browser tool should also not be fully echoed in the log.

When dealing with private repositories, it is important to review:

  • Whether the Provider will receive the complete file;
  • Whether local Embedding is enabled;
  • Whether the session is synchronized to an external service;
  • Whether the crash report contains prompt words and paths;
  • Can multiple clients see other sessions;
  • Whether disk files are cleaned up after deleting a session.

Regression steps before and after upgrade

Document the current jcode version and configuration, and retest TUI, run, --resume, serve/connect, and Browser Bridge after upgrade. Do not troubleshoot a tool upgrade and model switch on the same day, otherwise it will be difficult to determine the source of the change.

If the team relies on automated scripts, additionally check whether exit codes, output formats, and command parameters have changed, and lock in verified versions.

Summary

jcode is suitable for developers who want to maintain multiple Agent sessions in the terminal, use background services, or directly control Firefox. On Windows, first verify the installation and single session, then gradually enable background mode and browser tools, and isolate concurrent modifications through Git.