CHIM / two-PC setup

Remote Hosting Guide

Play Skyrim on one PC and run CHIM's server, models, and speech services on another. Keep the AI stack together and connect the game through one private-network endpoint.

One Game PC. One AI Host.

Run the complete DwemerDistro stack on the host. HerikaServer calls the model and speech services there; your gaming PC sends requests and receives replies through CHIM.

01 / gaming PC

Skyrim + CHIM

  • Game and SKSE plugin
  • Microphone input
  • Subtitles and voice playback

Private LAN Requests
and replies

02 / host PC

DwemerDistro

WSL ยท Linux environment

HerikaServer
Dialogue, profiles, memories, and actions

  • Language modelLLM Studio or cloud
  • Voice generationText-to-speech
  • Speech recognitionSpeech-to-text
The gaming PC reaches HerikaServer through one CHIM port. Local model and speech services stay inside the host's environment; cloud providers are reached by the host over the internet.

This layout does not require a second HerikaServer on the gaming PC. It also avoids opening separate model, speech, or database ports to the network.

1. Get The Host Working First

  1. Install and start DwemerDistro on the host PC.
  2. Install or update CHIM's server from the launcher's Mods page.
  3. Open the CHIM web interface and complete its setup.
  4. Test your model and voice connectors from that interface.
  5. Leave the launcher and DwemerDistro running while you play.

For local models, use the launcher's LLM Studio component and follow the Local LLM Guide. Choose voice and microphone services using Text-to-Speech and Speech-to-Text.

Keep connector URLs appropriate to the host. For example, bundled LLM Studio in the same distro uses http://127.0.0.1:1234/v1/chat/completions. Do not replace every connector URL with the gaming PC's address.

Moving an existing setup? Back up your existing playthrough data, profiles, configuration, and keys before moving it. A fresh host install does not contain your old AI history.

On the host PC, confirm this page opens before continuing:

http://127.0.0.1:7513/HerikaServer/ui/

2. Find Both PCs' Addresses

  1. Connect both PCs to the same trusted local network. Ethernet is useful for consistent audio and upload latency.
  2. Run ipconfig on the host PC and note the active Ethernet or Wi-Fi IPv4 Address.
  3. Run ipconfig on the gaming PC and note its IPv4 address too.

The examples below use 192.168.1.50 for the host and 192.168.1.25 for the gaming PC. Replace both with your own values. The host's Windows address is what Skyrim will use.

These instructions use a Private Windows network profile on a network you trust. If either LAN address changes later, update the forwarding rule, firewall scope, and INI as needed. A router DHCP reservation can keep those addresses stable.

3. Forward One CHIM Port

The launcher has a local CHIM proxy on port 7513. It finds the current WSL address for each connection. Windows can forward the host's LAN port 8081 to that proxy.

Network entry

Host Windows

192.168.1.50:8081

The address used by the gaming PC.

Local relay

Launcher proxy

127.0.0.1:7513

Windows forwards to this fixed local address.

Inside DwemerDistro

HerikaServer

current WSL IP:8081

The launcher resolves this internal address.

Requests enter at the host's Windows LAN address, pass through the launcher, and reach HerikaServer. Replies return along the same connection.

Verification status: the launcher's local proxy and CHIM configuration paths have been checked. Forwarding a second PC through this proxy, recovery after WSL restarts, and remote Skyrim gameplay still need end-to-end validation. Test the route below before relying on it for a play session.

  1. On the host PC, open PowerShell as Administrator.
  2. Check your existing rules with netsh interface portproxy show all. If this address and port already have a rule, inspect it before changing anything.
  3. Set the host address below to your real IPv4 address, then add the forwarding rule.
$HostPcIp = '192.168.1.50'
netsh interface portproxy add v4tov4 listenaddress=$HostPcIp listenport=8081 connectaddress=127.0.0.1 connectport=7513

The rule listens only on that host address. Keep the launcher open: it provides the second hop. This setup does not make CHIM's local discovery service search your LAN.

Fallback: forward directly to the current WSL address

If the launcher-proxy route fails, use Windows' documented WSL forwarding route. It uses the same LAN port and firewall rule, but the internal target must be updated when WSL's address changes.

  1. On the host, run wsl -d DwemerAI4Skyrim3 hostname -I and note the distro's IPv4 address.
  2. After confirming the existing LAN rule belongs to this setup, change its target using your actual WSL address below.
$HostPcIp = '192.168.1.50'
$WslIp = '172.30.98.229'
netsh interface portproxy set v4tov4 listenaddress=$HostPcIp listenport=8081 connectaddress=$WslIp connectport=8081

The sample WSL address is a placeholder. Refresh it after a distro restart. See Microsoft's WSL networking guide for direct forwarding and optional mirrored networking. Mirrored networking changes the WSL configuration; it is not required for the route above.

4. Allow The Gaming PC Through The Firewall

In the same elevated PowerShell window on the host, set both addresses to your values. Add a TCP rule for the gaming PC on the Private profile:

$HostPcIp = '192.168.1.50'
$GamingPcIp = '192.168.1.25'
New-NetFirewallRule -DisplayName 'CHIM remote hosting' -Direction Inbound -Action Allow -Protocol TCP -LocalAddress $HostPcIp -LocalPort 8081 -RemoteAddress $GamingPcIp -Profile Private

If you already created this rule, edit it instead of creating duplicates. Other broad firewall rules can still allow additional devices; this rule does not narrow those existing rules.

This guide is for a trusted private network. Do not add a router internet-forwarding rule or open model and database services to make this setup work.

Check From The Gaming PC

Open the host's CHIM interface in the gaming PC's browser:

http://192.168.1.50:8081/HerikaServer/ui/

If it does not open, stop here and check the connection before changing Skyrim. In PowerShell on the gaming PC:

Test-NetConnection 192.168.1.50 -Port 8081

TcpTestSucceeded: True confirms that the TCP port is reachable. It does not prove that CHIM or a model is working; the web page must load too.

5. Point Skyrim At The Host

Install CHIM's game plugin on the gaming PC as usual. Add a separate Mod Organizer 2 override mod containing SKSE/Plugins/AIAgent.ini. When enabled, the game sees it at Data/SKSE/Plugins/AIAgent.ini.

Use your host's Windows IPv4 address:

SERVER=192.168.1.50
PORT=8081
PATH=/HerikaServer/comm.php
POLINT=1
  • SERVER: only the numeric IPv4 address. Do not include http://, a port, or a path.
  • PORT: the host's LAN listening port, not the launcher's internal 7513.
  • PATH: keep the complete path shown above.

The INI takes precedence over local launcher discovery. Enable the override and restart Skyrim after changing it. Keep your original configuration available if you want to switch back to a local server.

Test One Thing At A Time

  1. Load your game and confirm the host's CHIM interface sees the player.
  2. Send a short typed message and check the reply.
  3. Listen to a generated voice reply.
  4. Test microphone input.
  5. Test one action and check the actual game result.

Keep the host awake during play. A working browser page is network proof; dialogue, voice, microphone input, and game actions each need their own check.

Fix A Connection

  1. The host's local 7513 page fails: keep the launcher open, start DwemerDistro, and confirm CHIM's server is installed. Try the launcher again if its proxy failed to start.
  2. Local works, but the gaming PC cannot connect: verify both LAN addresses, the Private profile, the firewall's gaming-PC scope, and netsh interface portproxy show all. A VPN or guest Wi-Fi can isolate the PCs. Windows' IP Helper service is also needed for port forwarding.
  3. It broke after restarting WSL: the launcher route should resolve the new target, but verify it. The direct-WSL fallback needs its forwarding target updated manually.
  4. The web page works, but Skyrim stays local: check which mod supplies the winning AIAgent.ini, its four values, and restart Skyrim. Confirm the resolved address in the CHIM log.
  5. Dialogue works, but speech fails: test the host's STT or TTS connector separately. Do not open a new LAN port before identifying which request failed.
Remove the rules created by this guide

On the host, inspect the forwarding rule and the firewall entry first. Remove only the rules you created for this setup; leave other service rules alone. Use the original host address if it has changed:

$HostPcIp = '192.168.1.50'
netsh interface portproxy delete v4tov4 listenaddress=$HostPcIp listenport=8081
Get-NetFirewallRule -DisplayName 'CHIM remote hosting' | Remove-NetFirewallRule

Disable the gaming PC's INI override when returning to a local CHIM server.

Alternative: Move Only The AI Services

You can keep HerikaServer on the gaming PC and host only a model or voice service elsewhere. In that layout, each remote service needs its own reachable address, listening port, and firewall access.

Configure those endpoints from HerikaServer's point of view. A bundled service bound only to the host's loopback address is not automatically available over the LAN. Follow the separate model app instructions or the selected service's hosting documentation.

Use the complete-stack layout above when you want one CHIM connection and fewer individual service settings.