28 min read

Set Up Atomic Chat on Linux and Connect with Localtonet

Install Atomic Chat with AppImage, verify its OpenAI-compatible API, and securely connect remote clients through a Localtonet HTTP tunnel.

Atomic Chat running on a Linux workstation and serving a remote client through a Localtonet HTTP tunnel.
Atomic Chat serves the model locally while Localtonet carries remote HTTP requests to the Linux host.
Local AI ยท Atomic Chat ยท Localtonet ยท 2026

Run a local OpenAI-compatible inference service on Linux, verify it, and make it available to authorized remote clients

Atomic Chat packages a desktop local AI application and an OpenAI-compatible HTTP service in one workflow. On Linux, the supported downloadable package is an x86_64 AppImage, while developers can also build the project from source. This guide starts with the AppImage installation, explains how to load a model and test the local API at http://localhost:1337/v1, and then adds remote connectivity through a Localtonet HTTP tunnel. Because Atomic Chat does not require an API key for the documented local API example, the guide also treats access control as an essential deployment decision rather than an optional refinement.

๐Ÿ”’ Loopback-only by default ๐ŸŒ OpenAI-compatible HTTP API โšก Linux AppImage workflow

How the Atomic Chat and Localtonet workflow fits together

Atomic Chat is a local AI desktop application and inference engine for running open-weight language models on the user's computer. Its local API follows the OpenAI API format, which allows compatible agents, command-line tools, IDE integrations, and applications to use a locally loaded model by changing their API base URL.

The documented base URL is http://localhost:1337/v1. Chat completion requests are sent to http://localhost:1337/v1/chat/completions. Atomic Chat binds this service to 127.0.0.1 by default. That loopback address means software on the same Linux computer can reach it, but another computer on the LAN cannot connect directly.

This default is useful because it reduces accidental network exposure. A local application can connect to the API while the service remains unavailable on other network interfaces. Atomic Chat documents changing its host to 0.0.0.0 when LAN exposure is required, but that change is not necessary for the preferred Localtonet layout in this guide. When the Localtonet client and Atomic Chat run on the same Linux computer, our client can forward requests to 127.0.0.1:1337.

The Localtonet client establishes an outbound connection to a Localtonet relay server. An HTTP tunnel then provides a public HTTPS address and forwards incoming application traffic to the configured local IP address and port. This avoids inbound router port forwarding, a public IP requirement, VPN setup, and inbound firewall changes. The tunnel is available only while the selected Localtonet client is connected and the tunnel is running.

๐Ÿง  Local inference Atomic Chat loads an open-weight model on the Linux machine and exposes the selected inference engine through one OpenAI-compatible API.
๐Ÿ” Compatible client interface An OpenAI-compatible client can use Atomic Chat by pointing its base URL to the Atomic Chat API and supplying the identifier of the model loaded in the application.
๐Ÿ  Loopback target The API listens on 127.0.0.1 by default. Keeping the Localtonet client on the same machine preserves that local-only binding.
๐ŸŒ Remote HTTP path A Localtonet HTTP tunnel maps a public HTTPS address to the local Atomic Chat service at port 1337.
The API and the desktop interface are separate parts of the workflow

Opening Atomic Chat is not enough by itself. A model must be available and loaded before a chat completion request can succeed. Keep the application and its inference service running while local or remote clients use the API.

Prerequisites for installing Atomic Chat on Linux

The Atomic Chat download page identifies the Linux desktop package as an x86_64 download. Confirm that the computer uses a compatible architecture before downloading the AppImage. The available evidence does not establish support for Linux ARM packages, individual distributions, minimum RAM, minimum disk capacity, or specific GPU drivers, so those requirements should not be guessed.

Model resource requirements vary substantially. A small quantized model may run on hardware that cannot load a larger model. Available system memory, GPU memory, storage, model format, context length, and inference backend can all affect whether a model starts successfully and how quickly it responds. Choose a model appropriate for the machine rather than assuming every model listed in the application will fit.

Requirement What to confirm Why it matters
Linux architecture The downloadable Linux desktop package is identified as x86_64. An AppImage built for another processor architecture will not execute correctly.
Desktop session You can launch a graphical desktop application under your current Linux account. Atomic Chat is distributed as a desktop application, even when its HTTP API is the main objective.
Executable permission The downloaded AppImage can be marked as executable. Linux normally requires this permission before an AppImage can be launched directly.
Model resources The machine has enough memory and storage for the model you select. Exact requirements depend on the model, quantization, context, and inference backend.
Local port Port 1337 is not already occupied by another process. Atomic Chat documents its OpenAI-compatible service at this port.
Remote connectivity The Localtonet client can run on the same Linux machine and make an outbound connection. This lets the client reach the loopback-only API without changing Atomic Chat to a LAN-wide binding.

You will also need permission to download a model if it is not already present. Some model repositories may impose their own license acceptance or access requirements. Atomic Chat supports models from Hugging Face, but the exact availability and conditions of an individual model come from that model's publisher.

Do not treat hardware requirements as universal

Atomic Chat's supplied documentation does not define one minimum RAM, GPU, storage, or Linux distribution requirement that applies to every model. If a model cannot load, test with a model that better matches the available hardware before diagnosing the HTTP or tunnel configuration.

Install Atomic Chat from the Linux AppImage

Three steps for downloading, enabling, and launching the Atomic Chat AppImage on Linux.
The AppImage must be executable before Atomic Chat can launch.

The AppImage route is the most direct documented installation path for a Linux user who wants to run the released desktop application. It avoids the Node.js, Yarn, Make, and Rust toolchain required for a source build. Download the Linux package from the official Atomic Chat website or the project's official release page rather than from an unofficial mirror.

1

Download the current Linux x86_64 AppImage

Obtain the Linux desktop package from the official Atomic Chat download page or its official GitHub releases. Use the current release offered by the project. Do not rely on a filename copied from an older tutorial because release asset names can change.

2

Mark the downloaded file as executable

In a graphical file manager, open the file's properties and allow it to run as a program. Alternatively, use chmod with the actual path of the downloaded AppImage. The path below is intentionally descriptive and must be replaced with the real file location.

3

Run the AppImage

Double-click the executable AppImage or launch it from a terminal using its real path. Keep the terminal open during the first test if you want to see diagnostic output generated during startup.

4

Confirm that the Atomic Chat window opens

A successful launch should display the application interface. Do not configure Localtonet yet. First complete the model setup and prove that the local API works directly on the Linux computer.

A terminal-based permission command follows this general form:

chmod u+x "/full/path/to/the-downloaded.AppImage"

Launch the same file after applying the permission:

"/full/path/to/the-downloaded.AppImage"

Replace the example path with the exact downloaded filename and location. Quoting the path prevents spaces in a directory or filename from being interpreted as separate shell arguments.

This guide does not prescribe a system-wide AppImage installation directory, desktop integration utility, or package-manager conversion because the supplied project evidence does not establish one required method. Running the official AppImage directly is sufficient for the documented workflow.

AppImage runtime errors can be distribution-specific

If the file is executable but does not start, preserve the exact terminal error. AppImage runtime and library behavior can vary among Linux distributions. The Atomic Chat evidence supplied for this guide does not specify a universal package command for resolving every AppImage launch failure, so avoid installing guessed dependencies without checking the requirements for your distribution and the current Atomic Chat release.

Load a model and prepare the inference service

Once Atomic Chat opens, select a model that is suitable for the Linux computer and make it available in the application. The project's basic workflow is to download Atomic Chat, pick a model, and start chatting. Its local model support includes model families such as Llama, Gemma, Qwen, Mistral, and Phi, among others, but model availability may change and individual models can have different licenses or hardware needs.

1

Choose a model appropriate for the machine

Consider available memory, storage, and acceleration hardware. Starting with a smaller model makes it easier to separate installation and networking problems from resource exhaustion.

2

Download or select the model in Atomic Chat

Allow any required model files to finish downloading. If the model comes from a repository with restricted access or license conditions, complete those requirements through the appropriate model provider.

3

Load the model

Make the selected model active in Atomic Chat. Record the model identifier shown for the loaded model because API requests must use the identifier that Atomic Chat recognizes.

4

Test a chat in the desktop application

Send a short prompt inside Atomic Chat. A successful response confirms that the model can load and perform inference before the API and network layers are introduced.

Atomic Chat exposes multiple inference engines through the same API base URL. Client applications do not need to know which backend is active underneath the service. This separation is useful operationally because the model or engine can be changed in Atomic Chat without necessarily changing the client's API URL.

For this guide, leave the service on its default 127.0.0.1 binding. Changing the host to 0.0.0.0 makes it reachable through the machine's network interfaces and is intended for LAN exposure. That broader binding adds another network path and is unnecessary when Localtonet runs beside Atomic Chat on the same computer.

Keep the default loopback binding when possible

Do not change the Atomic Chat host to 0.0.0.0 merely because you plan to use a tunnel. A Localtonet client on the same computer can connect to 127.0.0.1:1337. Retaining loopback binding prevents unrelated LAN devices from reaching the API directly.

Verify the OpenAI-compatible API locally

A local API request to Atomic Chat returning a successful response on the same Linux machine.
A successful local response confirms the inference API is available before tunneling.

Local verification is the most important diagnostic checkpoint in the workflow. If a request to 127.0.0.1:1337 fails on the Atomic Chat computer, a public tunnel will not repair the application, model, or local listener. Verify the service before installing or configuring remote access.

With Atomic Chat running and a model loaded, send the documented chat completion request. Replace the model placeholder with the identifier of the model currently loaded in Atomic Chat:

curl http://localhost:1337/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model-id-loaded-in-atomic-chat>",
    "messages": [
      {
        "role": "user",
        "content": "Say hello in one word"
      }
    ]
  }'

A successful response should be JSON in the OpenAI-compatible chat completion format. The exact generated text and timing depend on the loaded model and hardware. The relevant verification is that the server accepts the request, recognizes the model, performs inference, and returns a structured response instead of a connection or model error.

Verify with the OpenAI Python client

Atomic Chat's documented Python example uses the OpenAI client with a changed base_url. It supplies not-needed as the API key value because the example states that a real API key is not required by the local server.

from openai import OpenAI

client = OpenAI(
    base_url="http://localhost:1337/v1",
    api_key="not-needed",
)

response = client.chat.completions.create(
    model="<model-id-loaded-in-atomic-chat>",
    messages=[
        {
            "role": "user",
            "content": "Say hello in one word",
        }
    ],
)

print(response.choices[0].message.content)

This example assumes that Python and a compatible OpenAI Python package are already installed. Those are client-side requirements, not requirements for the AppImage itself. The curl test is usually the smallest verification path because it avoids a language package and application configuration.

Interpret common local outcomes

Observed result Likely layer Next check
A structured completion response Application, model, and local API are working. Proceed to Localtonet configuration.
Connection refused No service is accepting connections at the requested address and port. Confirm Atomic Chat is running and listening on port 1337.
Model-related error The HTTP service responded, but the model identifier or model state is incorrect. Load the intended model and copy the identifier recognized by Atomic Chat.
Request remains pending Inference may still be loading, resource constrained, or unusually slow. Test a short prompt in the desktop interface and inspect available system resources.
Port already in use Another process may be occupying port 1337. Identify the conflicting local process before changing any documented default.
Use the same hostname during diagnosis

On the Atomic Chat computer, localhost and 127.0.0.1 normally refer to the loopback interface. For the Localtonet target in this guide, use the explicit IPv4 target 127.0.0.1 with port 1337 so that the intended destination is unambiguous.

Connect Atomic Chat through a Localtonet HTTP tunnel

Configure remote access only after the local curl test succeeds. Install and run the Localtonet client on the same Linux computer as Atomic Chat. That placement allows our client to reach the loopback-only service without changing Atomic Chat's listener to 0.0.0.0.

An HTTP tunnel is appropriate because Atomic Chat exposes an HTTP API. The local target is 127.0.0.1 on port 1337. HTTP and File Server tunnels support Random Sub Domain, Custom Sub Domain, or Custom Domain process types, and each serves the configured content at a public HTTPS address. Availability of individual options can vary, so use only the choices currently presented for your account.

1

Install and run the Localtonet client

Run the Localtonet client on the Linux computer that is already running Atomic Chat and can reach 127.0.0.1:1337. Use the current installation method provided for your operating system. Do not copy an authentication token into a command, article, screenshot, or shared configuration.

2

Authenticate or select the client device

Use the device-specific authentication token through the supported Localtonet workflow, then confirm that the intended Linux device is selected. Tokens identify client devices and must be kept private.

3

Select an available relay server

Choose from the relay server or region values currently shown in the Localtonet dashboard. We do not hardcode server codes in this guide because available values can change by account, plan, region, or deployment.

4

Create the HTTP tunnel configuration

Choose an HTTP tunnel and an available process type. Set the local target IP address to 127.0.0.1 and the local port to 1337. Keep Atomic Chat running on the same computer.

5

Start the tunnel and record its public HTTPS URL

Creating a tunnel does not start it. Press Start, wait for the selected device and tunnel to be connected, and copy the assigned public HTTPS address. The tunnel remains available only while the selected client is connected and the tunnel is running.

6

Test the remote endpoint, then stop it when finished

Send a controlled request through the public address from an authorized remote client. When remote access is no longer required, stop the tunnel. Delete it if the configuration will not be reused.

The complete public API base URL is the assigned HTTPS origin followed by /v1. If the assigned origin is represented as https://your-assigned-host.example, the conceptual client configuration is:

https://your-assigned-host.example/v1

That hostname is an illustration, not an actual Localtonet endpoint. Always copy the real public URL assigned to your running tunnel. A chat completion request appends /chat/completions to the /v1 base:

curl "https://your-assigned-host.example/v1/chat/completions" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model-id-loaded-in-atomic-chat>",
    "messages": [
      {
        "role": "user",
        "content": "Reply with the word connected"
      }
    ]
  }'

Replace the illustrative origin and model placeholder before running the request. Never place a private Localtonet device token in the URL, JSON body, application repository, or client configuration.

Configure an OpenAI-compatible remote client

Most compatible clients separate the API base URL from the model name. Set the base URL to the real Localtonet HTTPS origin plus /v1. Set the model field to the identifier of the model loaded in Atomic Chat. If the client requires a nonempty API-key field even though the upstream Atomic Chat service does not validate one, a placeholder may satisfy that client's local configuration requirement, but it does not create authentication.

from openai import OpenAI

client = OpenAI(
    base_url="https://your-assigned-host.example/v1",
    api_key="not-needed",
)

response = client.chat.completions.create(
    model="<model-id-loaded-in-atomic-chat>",
    messages=[
        {
            "role": "user",
            "content": "Reply with the word connected",
        }
    ],
)

print(response.choices[0].message.content)
A placeholder API key is not access control

The documented Atomic Chat example says an API key is not needed. Supplying not-needed only satisfies software that expects a value in that field. It does not prove the caller's identity or prevent another party who knows the public URL from sending requests.

Secure remote access to the inference API

Local-only AI and public remote access have different trust boundaries. Atomic Chat's privacy benefits apply when inference, model data, and conversations remain on the local machine. Once a public endpoint is enabled, prompts and generated responses intentionally travel between remote clients and the local service. The deployment must therefore protect the public URL, client devices, application data, and model capacity.

A Localtonet HTTP tunnel provides a public HTTPS address and removes the need for inbound router port forwarding. It does not automatically add API-key authentication to an upstream application that does not require a key. Do not equate transport through an HTTPS endpoint with authorization to use the underlying inference service.

๐Ÿ” Add an authorization layer Put a properly configured authenticated gateway or reverse proxy in front of Atomic Chat when the endpoint must be shared beyond a tightly controlled test. Forward Localtonet to that protected local service rather than directly to an unauthenticated API.
๐Ÿ—๏ธ Protect device tokens Localtonet authentication tokens are device-specific credentials. Do not expose them in shell history, screenshots, repositories, support posts, or remote client settings.
โน๏ธ Limit tunnel lifetime Start the tunnel only when remote access is required. Stop it after the session, and delete configurations that will not be reused.
๐Ÿ“ Retain loopback binding Running both applications on one computer lets Atomic Chat stay bound to 127.0.0.1, avoiding an additional LAN-accessible listener.
๐Ÿ“Š Control resource consumption Unauthorized or excessive requests can consume local CPU, GPU, memory, and power. Apply least privilege and appropriate request controls in the authentication layer you deploy.
๐Ÿงน Avoid sensitive prompts Treat every remote client and intermediary according to its actual trust level. Do not send secrets, credentials, or private source material unless the full request path is approved for that data.

Recommended exposure pattern

For an individual temporary test, keep Atomic Chat and Localtonet on the same trusted Linux machine, retain the loopback binding, share the public URL only with the intended tester, monitor the test, and stop the tunnel immediately afterward. This minimizes the period in which the API is reachable.

For recurring access or multiple users, direct forwarding to the unauthenticated Atomic Chat API is not an appropriate final design. Add a local gateway that authenticates callers and enforces the controls required by your environment. The exact gateway configuration depends on the chosen software and organizational policy, so this article does not invent a universal command or claim a specific authentication mechanism is built into Atomic Chat.

Do not publish an unrestricted model endpoint

Anyone able to reach an unauthenticated public inference URL may be able to submit prompts and consume the host's resources. Use authentication, least privilege, request controls, and a deliberately limited tunnel lifetime. A hard-to-guess hostname is not a substitute for authorization.

Operate the service reliably

Four runtime components must remain healthy: the Atomic Chat desktop process, the loaded model and inference backend, the Localtonet client, and the HTTP tunnel. A failure in any one of these layers interrupts remote requests.

Start services in a testable order

Start Atomic Chat first, load the intended model, and repeat the local curl request. Then start the Localtonet client and tunnel. Finally, test through the public HTTPS URL. This order makes failures easier to isolate because every layer is verified before the next one is added.

Stop exposure without deleting the local setup

Stopping the Localtonet tunnel removes the public path while allowing Atomic Chat to continue serving local clients. This is useful when the local application should remain open but remote access is needed only during scheduled periods. Deleting the tunnel is appropriate when the public configuration will not be reused.

Change models carefully

A client request names a model. If the active model changes, remote clients may also need an updated model identifier. Verify the new model locally before resuming the public tunnel. Clients can continue using the same /v1 base URL while Atomic Chat changes the underlying inference engine, but the model field must still match a model recognized by the running service.

Account for inference latency

Local inference can take longer than a typical cloud API request, particularly while a model is loading or when the host is resource constrained. A client with an aggressive request timeout may fail even though Atomic Chat eventually produces a result. Adjust client-side timeout behavior based on measured local response times, but do not assign an arbitrary universal value because performance depends on the machine and model.

Preserve a local health check

Keep the local curl request available as a health check. If remote calls fail, run it directly on the Atomic Chat machine. A successful local request points toward the Localtonet client, tunnel state, public URL, or remote client configuration. A failed local request points toward Atomic Chat, the loaded model, or the local port.

Troubleshoot installation, API, and tunnel failures

Diagnostic flow checking the AppImage, model, local API, tunnel, and remote request in sequence.
Testing each layer in order isolates whether a failure is local, API-related, or in the tunnel path.
Problem What it usually indicates Recommended diagnostic path
The AppImage does not launch The file may lack executable permission, have the wrong architecture, be incomplete, or encounter a distribution-specific runtime issue. Confirm x86_64 compatibility, recheck the executable bit, run the file from a terminal, and preserve the exact error.
Atomic Chat opens but cannot answer No model is loaded, the model files are incomplete, or the model exceeds available resources. Load a suitable model and test a short prompt inside the desktop interface.
Local curl reports connection refused The HTTP service is not accepting connections on localhost:1337. Confirm Atomic Chat is running, keep it open, and check whether another process conflicts with port 1337.
The API returns a model error The request names a model that is not loaded or not recognized. Use the exact identifier of the model active in Atomic Chat rather than guessing a provider-style model name.
Local requests work but remote requests fail The application layer is healthy, so the issue is likely the Localtonet client, tunnel state, target, URL, or remote configuration. Confirm the selected device is connected, the tunnel is started, and its target is 127.0.0.1:1337.
The remote client receives a route error The API path may be missing or duplicated. Use the public origin plus /v1 as the base URL, then let the compatible client append the chat completion route.
The Python client rejects an empty key The client library requires a field even though Atomic Chat does not require a real key. Use a non-secret placeholder only if required, while recognizing that it adds no authentication.
Requests time out under load The model may be loading or the computer may lack sufficient available resources for the requested workload. Test one short local request, observe resource use, reduce concurrent demand, or select a model better matched to the hardware.
The tunnel disappears after a restart The Localtonet client, Atomic Chat, model, or tunnel may not be running. Check each layer explicitly. A created tunnel is not active until it is started, and it works only while the selected client is connected.

Check the target from the Localtonet machine

If Localtonet and Atomic Chat run on the same Linux computer, rerun the local curl test there. Do not test 127.0.0.1:1337 from another computer and expect it to reach the Atomic Chat host. Every machine has its own loopback interface.

Check the base URL for duplicate paths

Some client settings expect an API base such as https://assigned-host/v1, while the client library automatically appends /chat/completions. If a user enters the complete chat completion path into a base URL field, the client may append another route and produce an invalid URL. Inspect the final requested path when possible.

Separate authorization errors from inference errors

If you add an authenticated gateway, test it as a distinct layer. An authorization rejection means the gateway received the request but did not accept the credentials or policy. A model error means the request progressed far enough to reach an application layer that evaluated the model field. Keeping these layers conceptually separate makes troubleshooting faster.

When to build Atomic Chat from source instead

Most readers should use the released AppImage. A source build is more appropriate for contributors, developers testing unreleased changes, or users who need to inspect and modify the desktop application. The documented source prerequisites are Node.js 20 or newer, Yarn 4.5.3 or newer, Make, and Rust. The project provides a make dev workflow.

Do not mix AppImage troubleshooting with source-build troubleshooting. The AppImage is a released application package, while the development workflow introduces JavaScript dependencies, Rust tooling, compiler requirements, repository state, and development services. Those additional layers create failure modes that do not exist in the normal AppImage setup.

Installation path Best for Documented requirements
Linux AppImage Running a released Atomic Chat desktop build with minimal setup Compatible Linux x86_64 system and permission to execute the downloaded file
Source development workflow Contributing, modifying code, or testing development changes Node.js 20+, Yarn 4.5.3+, Make, Rust, and the project source tree
LAN binding Direct access from trusted devices on the local network Changing the documented host from 127.0.0.1 to 0.0.0.0, plus appropriate network security
Localtonet HTTP tunnel Controlled remote connectivity without inbound router port forwarding A working Atomic Chat API, connected Localtonet client, HTTP tunnel, and suitable access controls

The supplied evidence confirms the prerequisite versions and make dev workflow but does not provide enough verified detail here to reproduce every repository checkout, dependency installation, system package, or build artifact step safely. For that reason, this tutorial does not invent a complete source-build command sequence. The AppImage remains the documented installation path covered end to end.

Frequently asked questions

What URL does Atomic Chat use for its OpenAI-compatible API?

The documented local base URL is http://localhost:1337/v1. Chat completion requests use http://localhost:1337/v1/chat/completions. A model must be loaded in Atomic Chat before a completion request can succeed.

Must I change Atomic Chat from 127.0.0.1 to 0.0.0.0 for Localtonet?

No, not when the Localtonet client runs on the same Linux computer. Our client can forward the tunnel to 127.0.0.1:1337. Changing the host to 0.0.0.0 is documented for LAN exposure and creates an additional network-accessible path that is unnecessary in this layout.

Does Atomic Chat require an API key?

The documented local example states that an API key is not needed. Some OpenAI-compatible client libraries still require a nonempty configuration value, so the project example uses not-needed. That placeholder is not authentication and does not secure a public endpoint.

Does a Localtonet HTTP tunnel automatically protect the API with an API key?

No. The HTTP tunnel provides a public HTTPS path to the configured local service, but it does not turn Atomic Chat's placeholder key into application authentication. For ongoing or shared access, place an appropriate authenticated gateway in front of the local API and apply least-privilege controls.

Can an IDE or AI agent use the remote endpoint?

It can if it supports an OpenAI-compatible API and allows a custom base URL. Configure the base as the assigned Localtonet HTTPS origin followed by /v1, then select the model identifier loaded in Atomic Chat. Client-specific capabilities and configuration fields vary.

Why does the local curl request need to work before creating the tunnel?

Localtonet forwards traffic to the configured local target. It cannot load an Atomic Chat model, start the inference service, correct a model identifier, or resolve a local port conflict. A successful local request proves that the target application is ready before remote connectivity is added.

Does the Atomic Chat AppImage support every Linux distribution?

The available project information identifies a Linux x86_64 AppImage but does not provide a verified list of every supported distribution. If launch fails, run the AppImage from a terminal, preserve the exact error, and evaluate it against the current Atomic Chat release and your distribution's AppImage requirements.

Will the public API remain available after I close Atomic Chat?

No. Atomic Chat must remain running with the model available. The Localtonet client must also remain connected, and the tunnel must be started. Closing the application, disconnecting the selected device, or stopping the tunnel interrupts the end-to-end path.

Connect your verified Atomic Chat API with Localtonet

Once http://localhost:1337/v1/chat/completions works on your Linux machine, create an HTTP tunnel to 127.0.0.1:1337, add suitable access controls, and give authorized OpenAI-compatible clients a controlled remote path to your local model.

Get Started Free โ†’

Localtonet is a secure multi-protocol tunneling and proxy platform designed to expose localhost, devices, private services, and AI agents to the public internet supporting HTTP/HTTPS tunnels, TCP/UDP forwarding, mobile proxy infrastructure, file server publishing, latency-optimized game connectivity, and developer-ready AI agent endpoint exposure from a single unified control plane.

support