InkRider is in public beta. You can create an account today; the Word add-in and features are still evolving before general availability. About InkRider

Documentation

Using an External Jupyter Server

How to connect InkRider to your own Jupyter Server for full Python environment control.

By default InkRider runs code in a browser-based Python environment (JupyterLite). This covers the core workflow for most users and requires no server setup.

If you need access to system libraries, local files, network calls, or a specific Python environment that you manage yourself, you can connect InkRider to an external Jupyter Server running on your machine or a server you control.

This is a Professional plan feature.

When To Use an External Server

Prefer an external server when you need:

  • Python packages that are not available in the local in-browser runtime (NumPy with C extensions, Pandas with full IO support, database drivers, etc.)
  • access to local files on your machine or a shared network drive
  • outbound HTTP requests from code cells
  • a reproducible environment you manage with conda, pip, or a container

JupyterLite is sufficient for most document-generation and calculation workflows and requires no server configuration.

Before You Start

  • Your machine must have Python and Jupyter Server installed.
  • You need an active Professional subscription for this feature.
  • The server and the Word add-in must be reachable from each other's network.

Install Jupyter Server if you do not already have it:

pip install jupyter_server

Starting the Server

Run the following in a terminal on the machine that will execute your code:

jupyter server --no-browser

On first run Jupyter prints a startup message that contains the server URL and a token:

[JupyterServerApp] Serving notebooks from local directory: /Users/you
[JupyterServerApp] Jupyter Server 2.x is running at:
[JupyterServerApp] http://localhost:8888/
[JupyterServerApp] Use Control-C to stop this server

Note the URL (http://localhost:8888) and the token (a long hex string that appears after ?token= in the full URL printed below). You will need both.

If you want a persistent token you can set one explicitly:

jupyter server --no-browser --ServerApp.token=your-token-here

Entering the URL and Token in InkRider

  1. Open the InkRider add-in in Word.
  2. Open Application Settings (gear icon in the header).
  3. Switch to the Runtime tab.
  4. Under Jupyter Server, enter the Base URL (http://localhost:8888).
  5. Enter the Token from the startup message.
  6. Click Test connection to confirm InkRider can reach the server.
  7. Close the settings dialog.

The connection test pings the server's /api endpoint and reports the Jupyter Server version if it succeeds. A 403 response means the token is wrong.

Checking Connection Status

The globe or plug icon in the add-in header reflects the connection state:

  • Green outline: InkRider has an active connection to the server.
  • Default: no server URL is configured.
  • Click the icon to open the runtime panel, which shows the server URL and a Test connection button you can use at any time.

Switching Back to JupyterLite

Clear the Base URL field in Application Settings → Runtime and reload the add-in. InkRider will resume using JupyterLite as the local runtime.

Security Notes

Use HTTPS on any non-localhost server. When the server is accessible over a network, plain HTTP (http://) sends the authentication token unencrypted. InkRider warns you when this is the case. Set up TLS on your server or use an SSH tunnel:

ssh -L 8888:localhost:8888 user@remote-host

Then connect to http://localhost:8888; the SSH tunnel handles encryption.

Do not expose your Jupyter Server to the public internet without authentication. Use a strong token and restrict access with a firewall or VPN where practical.

Troubleshooting

Test connection times out (8 seconds)

  • Confirm the server is running: jupyter server list
  • Check that the URL matches exactly (protocol + host + port + no trailing /api, because InkRider appends that itself)
  • If the server is on a remote host, verify that port 8888 (or your custom port) is open

HTTP 403 (forbidden)

  • The token is incorrect. Copy it again from the Jupyter startup output.
  • If you started the server without a token intentionally, leave the token field empty.

Packages are missing

  • Confirm you are running jupyter server inside the correct conda environment or virtualenv.
  • After installing a package, restart the server.

CORS error in browser console

  • Jupyter Server allows cross-origin requests from the same origin by default. InkRider runs in a Word add-in iframe with a different origin. Start the server with the add-in's allowed origin:
    jupyter server --ServerApp.allow_origin='*'
    
    On a private local server this is acceptable. On a networked server, restrict to the specific origin.

Connection works but code does not run

  • Check the runtime dropdown in the header is set to Jupyter Server.
  • If you recently changed the token, update it in Application Settings and run Test connection again.

See Also