Improve documentation for usage with VSCode #36

Closed
opened 2026-05-02 07:38:00 -07:00 by ufechner7 · 2 comments
ufechner7 commented 2026-05-02 07:38:00 -07:00 (Migrated from github.com)

It is not clear to me which VSCode extensions I need to install to use GitHub Copilot with Kaimon.

I have only the JETLS extension installed.

I launch Julia with a custom run script: https://github.com/OpenSourceAWE/KiteControllers.jl/blob/main/bin/run_julia

I launched kitemon from the command line before starting VSCode.

In Julia, I executed:

using Kaimon; Gate.serve()

The connection is established.

But when I use Github copilot, it does not use Kaimon.

It is not clear to me which VSCode extensions I need to install to use GitHub Copilot with Kaimon. I have only the JETLS extension installed. I launch Julia with a custom run script: https://github.com/OpenSourceAWE/KiteControllers.jl/blob/main/bin/run_julia I launched kitemon from the command line before starting VSCode. In Julia, I executed: ```julia using Kaimon; Gate.serve() ``` The connection is established. But when I use Github copilot, it does not use Kaimon.
ufechner7 commented 2026-05-02 08:09:57 -07:00 (Migrated from github.com)

Small update: It works now, with JETLS as the only installed VSCode extension.

I use now the following script to start Julia:

#!/bin/bash

if [[ $(basename $(pwd)) == "bin" ]]; then
    cd ..
fi

export NO_AT_BRIDGE=1
export JULIA_PKG_SERVER_REGISTRY_PREFERENCE=eager
USE_KAIMON=false
if command -v ss &> /dev/null; then
    if ss -ltn '( sport = :2828 )' | grep -q ':2828'; then
        USE_KAIMON=true
    fi
elif command -v lsof &> /dev/null; then
    if lsof -nP -iTCP:2828 -sTCP:LISTEN &> /dev/null; then
        USE_KAIMON=true
    fi
fi

if [[ "$(uname -s)" == "Darwin" ]]; then
    # Avoid Tk backend issues on macOS (e.g. non-responsive close button in PyPlot windows).
    # Keep user override if MPLBACKEND is already set.
    if [[ -z "${MPLBACKEND:-}" ]]; then
        export MPLBACKEND=qtagg
    fi
fi

. ./bin/setup_env

if command -v nproc &> /dev/null; then
    FAST_CORES=$(($(nproc) / 2 - 1))
else
    FAST_CORES=3 # default value
fi

GCT="--gcthreads=4,1"
export JULIA_PKG_SERVER_REGISTRY_PREFERANCE=eager

julia_version=$(julia --version | awk '{print($3)}')
julia_major=${julia_version:0:3} 
if [[ $julia_major == "1.1" ]]; then
    julia_major=${julia_version:0:4}
else
    GCT=""
fi

script_file=""
if [[ $# -gt 0 ]]; then
    script_file="$1"
    shift
    if [[ ! -f "$script_file" ]]; then
        echo "Error: script file '$script_file' not found."
        exit 1
    fi
fi

julia_init='using Revise; '
if [[ "$USE_KAIMON" == "true" ]]; then
    julia_init+='using Kaimon; Gate.serve(); '
fi
julia_init+='using KiteControllers; test_menu() = Base.include(Main, joinpath(pkgdir(KiteControllers), "test", "test_menu.jl")); menu_learning() = Base.include(Main, joinpath(pkgdir(KiteControllers), "examples", "menu_learning.jl"))'

if test -f "bin/kps-image-${julia_major}.so"; then
    echo "Found system image!"
    if [[ -n "$script_file" ]]; then
        PLOT=1 julia -J bin/kps-image-${julia_major}.so -t 1 $GCT --project "$script_file" "$@"
    else
        PLOT=1 julia -J bin/kps-image-${julia_major}.so -t 1 $GCT --project -i -e "$julia_init"
    fi
else
    if [[ -n "$script_file" ]]; then
        PLOT=1 julia --project -t 1 $GCT "$script_file" "$@"
    else
        PLOT=1 julia --project -t 1 $GCT -i -e "$julia_init"
    fi
    # julia --project
fi

UPDATE:
The README.md file says:

  • VS Code with MCP extension)

Which MCP extension?

Small update: It works now, with JETLS as the only installed VSCode extension. I use now the following script to start Julia: ```julia #!/bin/bash if [[ $(basename $(pwd)) == "bin" ]]; then cd .. fi export NO_AT_BRIDGE=1 export JULIA_PKG_SERVER_REGISTRY_PREFERENCE=eager USE_KAIMON=false if command -v ss &> /dev/null; then if ss -ltn '( sport = :2828 )' | grep -q ':2828'; then USE_KAIMON=true fi elif command -v lsof &> /dev/null; then if lsof -nP -iTCP:2828 -sTCP:LISTEN &> /dev/null; then USE_KAIMON=true fi fi if [[ "$(uname -s)" == "Darwin" ]]; then # Avoid Tk backend issues on macOS (e.g. non-responsive close button in PyPlot windows). # Keep user override if MPLBACKEND is already set. if [[ -z "${MPLBACKEND:-}" ]]; then export MPLBACKEND=qtagg fi fi . ./bin/setup_env if command -v nproc &> /dev/null; then FAST_CORES=$(($(nproc) / 2 - 1)) else FAST_CORES=3 # default value fi GCT="--gcthreads=4,1" export JULIA_PKG_SERVER_REGISTRY_PREFERANCE=eager julia_version=$(julia --version | awk '{print($3)}') julia_major=${julia_version:0:3} if [[ $julia_major == "1.1" ]]; then julia_major=${julia_version:0:4} else GCT="" fi script_file="" if [[ $# -gt 0 ]]; then script_file="$1" shift if [[ ! -f "$script_file" ]]; then echo "Error: script file '$script_file' not found." exit 1 fi fi julia_init='using Revise; ' if [[ "$USE_KAIMON" == "true" ]]; then julia_init+='using Kaimon; Gate.serve(); ' fi julia_init+='using KiteControllers; test_menu() = Base.include(Main, joinpath(pkgdir(KiteControllers), "test", "test_menu.jl")); menu_learning() = Base.include(Main, joinpath(pkgdir(KiteControllers), "examples", "menu_learning.jl"))' if test -f "bin/kps-image-${julia_major}.so"; then echo "Found system image!" if [[ -n "$script_file" ]]; then PLOT=1 julia -J bin/kps-image-${julia_major}.so -t 1 $GCT --project "$script_file" "$@" else PLOT=1 julia -J bin/kps-image-${julia_major}.so -t 1 $GCT --project -i -e "$julia_init" fi else if [[ -n "$script_file" ]]; then PLOT=1 julia --project -t 1 $GCT "$script_file" "$@" else PLOT=1 julia --project -t 1 $GCT -i -e "$julia_init" fi # julia --project fi ``` UPDATE: The README.md file says: - VS Code with MCP extension) Which MCP extension?
kahliburke commented 2026-06-19 16:56:58 -07:00 (Migrated from github.com)

Fixed the README ambiguity you flagged (90084d2… see commit on 2.0-integration). To answer your question directly — which MCP extension? None, for using Kaimon from VS Code:

  • VS Code as an MCP client (Copilot Chat / Continue): MCP is native — no separate extension. Press i in Kaimon's Config tab and it writes .vscode/mcp.json for you. (Glad JETLS-only worked for you — JETLS is the Julia LSP and is unrelated to the MCP wiring.)
  • The README's old "VS Code Remote Control" marketplace link was stale. That was about the reverse direction (Kaimon driving the editor — execute_vscode_command, navigate_to_file), and Kaimon now ships its own built-in extension for that. Install it from the Config tab with v (or Kaimon.install_vscode_remote_control()). It's optional and only needed for those in-editor command tools.

Both README lines now say this clearly. Closing — thanks for catching it!

Fixed the README ambiguity you flagged (`90084d2`… see commit on `2.0-integration`). To answer your question directly — **which MCP extension?** None, for using Kaimon *from* VS Code: - **VS Code as an MCP client (Copilot Chat / Continue):** MCP is **native** — no separate extension. Press **`i`** in Kaimon's Config tab and it writes `.vscode/mcp.json` for you. (Glad JETLS-only worked for you — JETLS is the Julia LSP and is unrelated to the MCP wiring.) - The README's old "VS Code Remote Control" marketplace link was **stale**. That was about the *reverse* direction (Kaimon driving the editor — `execute_vscode_command`, `navigate_to_file`), and Kaimon now ships its **own built-in** extension for that. Install it from the Config tab with **`v`** (or `Kaimon.install_vscode_remote_control()`). It's optional and only needed for those in-editor command tools. Both README lines now say this clearly. Closing — thanks for catching it!
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kahliburke/Kaimon.jl#36
No description provided.