julia-session
Manage multiple Julia REPL sessions (create, switch, list, destroy)
Julia Session Management
Manage multiple concurrent Julia REPL sessions. Each session has its own isolated worker process with separate state, packages, and project environment.
Arguments
action- One of:create,switch,list,destroyname- Session name (required for create/switch/destroy)
Instructions
Parse the user's arguments:
| User Input | Action | Name |
|---|---|---|
create analysis | create | analysis |
switch testing | switch | testing |
list | list | (none) |
destroy old-session | destroy | old-session |
Call session with the appropriate action and name parameters.
When to Create Separate Sessions
- Development + Testing: One session for development work, another for running tests
- Multiple Projects: One session per project when working across repos
- Benchmarking: Isolate benchmark runs from development state
- Experimentation: Try something risky without affecting your main session
Session Lifecycle
- Sessions start with no worker — workers spawn lazily on first
eval - Each session gets its own Distributed.jl worker process
- Variables, packages, and project environment are fully isolated between sessions
- Revise.jl is auto-loaded on each worker if available
- The "default" session is auto-created if you use
evalwithout creating a session first
Notes
- Session names should be short, descriptive identifiers (e.g., "dev", "test", "analysis")
- Use
listto see all sessions with their worker status, project, and Revise availability - The
*marker in list output indicates the current session - Destroying a session kills its worker process immediately
- If you destroy the current session, another session becomes current automatically