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 Malt.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