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 context

  • SDK 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 instance

  • dry_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 message

  • history - Select and re-run previous commands

  • clear - Clear the screen

  • exit / 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)