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:
|
|
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:
|
|
Common commands
|
|
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:
|
|
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
- Each session is only responsible for one clear task;
- Record the current Git status before modification;
- Do not allow two sessions to run formatting and dependency updates at the same time;
- Database migration, lock files and shared configuration are handed over to a separate session;
- Check
git diffbefore 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
PATHare 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
|
|
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
|
|
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
|
|
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
|
|
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.
Recommended single session verification process
- Start
jcodein the test repository; - Let it specify the working directory and Git branch;
- Perform read-only directory analysis;
- Let it correct a document typo;
- View actual
git diff; - The running project has been tested;
- Exit and restore with
--resume; - 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:
|
|
If the status is abnormal, execute again:
|
|
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:
- Free single session memory;
- Total memory for ten sessions;
- Changes after turning on local Embedding;
- Startup and recovery time for long sessions;
- 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.