Skip to content

Beforerr/julia-client

Repository files navigation

julia-client

Persistent Julia REPL client and daemon.

Runs Julia code in a long-lived session over a Unix socket so that state (variables, loaded packages) survives between calls. The project environment is auto-detected from $PWD.

Quickstart

curl -fsSL https://raw.githubusercontent.com/Beforerr/julia-client/main/install.sh | bash
# Override destination with `INSTALL_DIR=/usr/local/bin`.

This installs julia-client to ~/.local/bin. The single binary acts as both client and daemon (daemon auto-starts on first eval).

To uninstall: rm "$(which julia-client)".

Agent skill

The included skill at skills/julia-client/SKILL.md teaches Agent how to use julia-client.

npx skills add https://github.com/Beforerr/julia-client

Or manually by adding this repo's skills/ directory to your Agent skill search paths.

Usage

# Evaluate code (daemon starts automatically)
julia-client -e 'println("hello")'

# Pkg operations (disable timeout)
julia-client --timeout 0 -e 'using Pkg; Pkg.add("Example")'

# Explicit project environment
julia-client --project /path/to/project -e 'using MyPackage'

# Read from stdin
echo 'println("hello")' | julia-client

# Session management
julia-client sessions   # list active sessions
julia-client restart    # restart current session
julia-client stop       # shut down the daemon

Architecture

A single julia-client binary serves as both client and daemon:

  • Client mode (default) — sends JSON requests over a Unix socket (~/.local/share/julia-client/julia-daemon.sock)
  • Daemon mode (julia-client daemon) — background server managing persistent Julia processes; auto-started on first eval, shuts down after 30 minutes of inactivity

Alternatives

About

Persistent Julia REPL client and daemon

Resources

Stars

Watchers

Forks

Contributors