NAME
Acme::Claude::Shell::Session - Multi-turn session for Acme::Claude::Shell
SYNOPSIS
use Acme::Claude::Shell::Session;
use IO::Async::Loop;
my $loop = IO::Async::Loop->new;
my $session = Acme::Claude::Shell::Session->new(
loop => $loop,
dry_run => 0,
safe_mode => 1,
);
$session->run->get;
DESCRIPTION
Runs an interactive REPL using Claude's session() function for multi-turn conversations. Claude remembers context from previous commands, so you can say things like "now compress those files" after a find command.
Uses Claude::Agent SDK features:
session()- Multi-turn conversation with contextSDK MCP tools - execute_command, read_file, list_directory, search_files, get_system_info, get_working_directory
Hooks - PreToolUse (audit), PostToolUse (stats), PostToolUseFailure (errors), Stop (statistics), Notification (logging)
CLI utilities - Spinners, menus, colored output
Attributes
loop(required) - IO::Async::Loop instancedry_run- Preview mode, don't execute commands (default: 0)safe_mode- Confirm dangerous commands (default: 1)working_dir- Starting directory (default: '.')colorful- Use colored output (default: 1)model- Claude model to use (optional)
Built-in Commands
help- Show help messagehistory- Select and re-run previous commandsclear- Clear the screenexit/quit- Exit the shell
History
Command history is persisted to ~/.acme_claude_shell_history and loaded on startup. Maximum 1000 lines are kept.
AUTHOR
LNATION, <email at lnation.org>
LICENSE AND COPYRIGHT
This software is Copyright (c) 2026 by LNATION.
This is free software, licensed under:
The Artistic License 2.0 (GPL Compatible)