Skip to main content

Module utils

Module utils 

Source
Expand description

Utility modules

Re-exports§

pub use abort_controller::AbortController;
pub use abort_controller::AbortSignal;
pub use abort_controller::create_abort_controller;
pub use abort_controller::create_abort_controller_default;
pub use abort_controller::create_child_abort_controller;
pub use config::AccountInfo;
pub use config::AutoUpdaterDisabledReason;
pub use config::DiffTool;
pub use config::EditorMode;
pub use config::GlobalConfig;
pub use config::InstallMethod;
pub use config::McpServerConfig;
pub use config::NotificationChannel;
pub use config::ProjectConfig;
pub use config::ReleaseChannel;
pub use config::ThemeSetting;
pub use config::check_has_trust_dialog_accepted;
pub use config::get_current_project_config;
pub use config::get_global_config;
pub use config::get_global_config_path;
pub use config::get_or_create_user_id;
pub use config::is_auto_updater_disabled;
pub use config::save_current_project_config;
pub use config::save_global_config;
pub use cwd::get_cwd;
pub use cwd::get_original_cwd;
pub use cwd::pwd;
pub use cwd::run_with_cwd_override;
pub use cwd::set_cwd;
pub use env_utils::get_aws_region;
pub use env_utils::get_claude_config_home_dir;
pub use env_utils::get_default_vertex_region;
pub use env_utils::get_teams_dir;
pub use env_utils::get_user_type;
pub use env_utils::get_vertex_region_for_model;
pub use env_utils::has_node_option;
pub use env_utils::is_ant_user;
pub use env_utils::is_bare_mode;
pub use env_utils::is_env_defined_falsy;
pub use env_utils::is_env_truthy;
pub use env_utils::is_in_protected_namespace;
pub use env_utils::is_running_on_homespace;
pub use env_utils::is_test_mode;
pub use env_utils::parse_env_vars;
pub use env_utils::should_maintain_project_working_dir;
pub use errors::error_message;
pub use messages::Message;
pub use messages::MessageContent;
pub use messages::NormalizedMessage;
pub use messages::extract_tag;
pub use messages::get_last_assistant_message;
pub use messages::get_progress_messages_from_lookup;
pub use messages::get_sibling_tool_use_ids_from_lookup;
pub use messages::get_tool_result_ids;
pub use messages::is_classifier_denial;
pub use messages::is_not_empty_message;
pub use messages::is_tool_use_request_message;
pub use messages::is_tool_use_result_message;
pub use messages::reorder_attachments_for_api;
pub use thinking::ThinkingConfig;
pub use thinking::find_thinking_trigger_positions;
pub use thinking::has_ultrathink_keyword;
pub use thinking::is_ultrathink_enabled;
pub use thinking::model_supports_adaptive_thinking;
pub use thinking::model_supports_thinking;
pub use thinking::should_enable_thinking_by_default;
pub use uuid::create_agent_id;
pub use uuid::generate_uuid;
pub use uuid::validate_uuid;
pub use words::generate_short_word_slug;
pub use words::generate_word_slug;
pub use shell::BashShellProvider;
pub use shell::PowerShellProvider;
pub use shell::shell_provider::ShellError;
pub use shell::shell_provider::ShellExecCommand;
pub use shell::shell_tool_utils::SHELL_TYPES;
pub use shell::shell_tool_utils::ShellType;
pub use side_query::SideQueryMemorySelection;
pub use side_query::SideQueryOptions;
pub use side_query::side_query;
pub use side_query::side_query_simple;
pub use side_query::side_query_with_tools;
pub use tempfile::generate_temp_file_path;
pub use tempfile::generate_temp_file_path_default;
pub use which::which;
pub use which::which_sync;
pub use xdg::get_user_bin_dir;
pub use xdg::get_xdg_cache_home;
pub use xdg::get_xdg_data_home;
pub use xdg::get_xdg_state_home;
pub use yaml::parse_yaml;
pub use commit_attribution::AttributionData;
pub use commit_attribution::AttributionSnapshotMessage;
pub use commit_attribution::AttributionState;
pub use commit_attribution::AttributionSummary;
pub use commit_attribution::FileAttribution;
pub use commit_attribution::FileAttributionState;
pub use commit_attribution::FileChange;
pub use commit_attribution::FileChangeType;
pub use commit_attribution::SessionBaseline;
pub use commit_attribution::SurfaceBreakdown;
pub use commit_attribution::attribution_restore_state_from_log;
pub use commit_attribution::build_surface_key;
pub use commit_attribution::calculate_commit_attribution;
pub use commit_attribution::compute_content_hash;
pub use commit_attribution::create_empty_attribution_state;
pub use commit_attribution::expand_file_path;
pub use commit_attribution::get_attribution_repo_root;
pub use commit_attribution::get_client_surface;
pub use commit_attribution::get_file_mtime;
pub use commit_attribution::get_repo_class_cached;
pub use commit_attribution::get_staged_files;
pub use commit_attribution::increment_prompt_count;
pub use commit_attribution::is_internal_model_repo;
pub use commit_attribution::is_internal_model_repo_cached;
pub use commit_attribution::normalize_file_path;
pub use commit_attribution::restore_attribution_state_from_snapshots;
pub use commit_attribution::sanitize_model_name;
pub use commit_attribution::sanitize_surface_key;
pub use commit_attribution::state_to_snapshot_message;
pub use commit_attribution::track_bulk_file_changes;
pub use commit_attribution::track_file_creation;
pub use commit_attribution::track_file_deletion;
pub use commit_attribution::track_file_modification;
pub use plugins::KnownMarketplace;
pub use plugins::KnownMarketplacesFile;
pub use plugins::PluginId;
pub use plugins::PluginMarketplace;
pub use plugins::PluginMarketplaceEntry;
pub use plugins::PluginMarketplaceMetadata;
pub use plugins::PluginMarketplaceOwner;
pub use plugins::PluginSource;
pub use plugins::get_known_marketplace_names;
pub use plugins::get_marketplace_cache_only;
pub use plugins::get_plugin_by_id_cache_only;
pub use plugins::parse_plugin_identifier;
pub use file_state_cache::DEFAULT_MAX_CACHE_SIZE_BYTES;
pub use file_state_cache::FileState;
pub use file_state_cache::FileStateCache;
pub use file_state_cache::READ_FILE_STATE_CACHE_SIZE;
pub use file_state_cache::cache_keys;
pub use file_state_cache::cache_to_object;
pub use file_state_cache::clone_file_state_cache;
pub use file_state_cache::create_file_state_cache_with_size_limit;
pub use file_state_cache::merge_file_state_caches;
pub use process_user_input::AgentDefinitions;
pub use process_user_input::ContentBlockParam;
pub use process_user_input::CursorPosition;
pub use process_user_input::EffortValue;
pub use process_user_input::IdeSelection;
pub use process_user_input::ImageDimensions;
pub use process_user_input::ImageSource;
pub use process_user_input::PastedContent;
pub use process_user_input::ProcessUserInput;
pub use process_user_input::ProcessUserInputBaseResult;
pub use process_user_input::ProcessUserInputContext;
pub use process_user_input::ProcessUserInputContextOptions;
pub use process_user_input::ProcessUserInputOptions;
pub use process_user_input::PromptInputMode;
pub use process_user_input::QuerySource;
pub use process_user_input::QueryTracking;
pub use process_user_input::process_user_input;
pub use model::ModelName;
pub use model::ModelSetting;
pub use model::ModelShortName;
pub use model::ModelValidationResult;
pub use model::check_opus_1m_access;
pub use model::check_sonnet_1m_access;
pub use model::first_party_name_to_canonical;
pub use model::get_best_model;
pub use model::get_canonical_name;
pub use model::get_claude_ai_user_default_model_description;
pub use model::get_default_haiku_model;
pub use model::get_default_main_loop_model;
pub use model::get_default_opus_model;
pub use model::get_default_sonnet_model;
pub use model::get_main_loop_model;
pub use model::get_public_model_display_name;
pub use model::get_public_model_name;
pub use model::get_small_fast_model;
pub use model::get_user_specified_model_setting;
pub use model::is_legacy_model_remap_enabled;
pub use model::is_opus_1m_merge_enabled;
pub use model::model_display_string;
pub use model::normalize_model_string_for_api;
pub use model::parse_user_specified_model;
pub use model::render_default_model_setting;
pub use model::render_model_name;
pub use model::render_model_setting;
pub use model::resolve_skill_model_override;
pub use model::validate_model;
pub use swarm::AgentColorName;
pub use swarm::BackendType;
pub use swarm::CreatePaneResult;
pub use swarm::HIDDEN_SESSION_NAME;
pub use swarm::PLAN_MODE_REQUIRED_ENV_VAR;
pub use swarm::PaneBackendType;
pub use swarm::PaneId;
pub use swarm::SWARM_SESSION_NAME;
pub use swarm::SWARM_VIEW_WINDOW_NAME;
pub use swarm::SystemPromptMode;
pub use swarm::TEAM_LEAD_NAME;
pub use swarm::TEAMMATE_COLOR_ENV_VAR;
pub use swarm::TEAMMATE_COMMAND_ENV_VAR;
pub use swarm::TMUX_COMMAND;
pub use swarm::TeammateIdentity;
pub use swarm::TeammateMessage;
pub use swarm::TeammateSpawnConfig;
pub use swarm::TeammateSpawnResult;
pub use swarm::get_swarm_socket_name;
pub use swarm::is_pane_backend;
pub use system_theme::SystemTheme;
pub use system_theme::get_system_theme_name;
pub use system_theme::resolve_theme_setting;
pub use system_theme::set_cached_system_theme;
pub use system_theme::theme_from_osc_color;
pub use theme::AnsiColor;
pub use theme::DARK_ANSI_THEME;
pub use theme::DARK_DALTONIZED_THEME;
pub use theme::DARK_THEME;
pub use theme::LIGHT_ANSI_THEME;
pub use theme::LIGHT_DALTONIZED_THEME;
pub use theme::LIGHT_THEME;
pub use theme::THEME_NAMES;
pub use theme::Theme;
pub use theme::ThemeColor;
pub use theme::get_theme;
pub use theme::theme_color_to_ansi;
pub use user::CoreUserData;
pub use user::GitHubActionsMetadata;
pub use user::Platform;
pub use user::get_core_user_data;
pub use user::get_git_email;
pub use user::get_user_for_analytics;
pub use user::reset_user_cache;
pub use user::set_cached_email;
pub use task::AppState;
pub use task::CircularBuffer;
pub use task::MAX_TASK_OUTPUT_BYTES;
pub use task::MAX_TASK_OUTPUT_BYTES_DISPLAY;
pub use task::OUTPUT_FILE_TAG;
pub use task::PANEL_GRACE_MS;
pub use task::POLL_INTERVAL_MS;
pub use task::STATUS_TAG;
pub use task::STOPPED_DISPLAY_MS;
pub use task::SUMMARY_TAG;
pub use task::SetAppState;
pub use task::TASK_ID_TAG;
pub use task::TASK_NOTIFICATION_TAG;
pub use task::TASK_TYPE_TAG;
pub use task::TOOL_USE_ID_TAG;
pub use task::TaskAttachment;
pub use task::TaskOutput;
pub use task::TaskStateBase;
pub use task::TaskStatus;
pub use task::TaskType;
pub use task::append_task_output;
pub use task::apply_task_offsets_and_evictions;
pub use task::cleanup_task_output;
pub use task::evict_task_output;
pub use task::evict_terminal_task;
pub use task::flush_task_output;
pub use task::format_task_notification;
pub use task::generate_task_attachments;
pub use task::get_running_tasks;
pub use task::get_task_output;
pub use task::get_task_output_delta;
pub use task::get_task_output_path;
pub use task::get_task_output_size;
pub use task::init_task_output;
pub use task::is_terminal_task_status;
pub use task::poll_tasks;
pub use task::register_task;
pub use ultraplan::TriggerPosition;
pub use ultraplan::find_ultraplan_trigger_positions;
pub use ultraplan::find_ultrareview_trigger_positions;
pub use ultraplan::has_ultraplan_keyword;
pub use ultraplan::has_ultrareview_keyword;
pub use ultraplan::replace_ultraplan_keyword;
pub use billing::has_claude_ai_billing_access;
pub use billing::has_console_billing_access;
pub use billing::set_mock_billing_access_override;
pub use completion_cache::ShellInfo;
pub use completion_cache::detect_shell;
pub use completion_cache::get_completion_cache_dir;
pub use content_array::insert_block_after_tool_results;
pub use cursor::YankPopResult;
pub use cursor::can_yank_pop;
pub use cursor::clear_kill_ring;
pub use cursor::get_kill_ring_item;
pub use cursor::get_kill_ring_size;
pub use cursor::get_last_kill;
pub use cursor::is_vim_punctuation;
pub use cursor::is_vim_whitespace;
pub use cursor::is_vim_word_char;
pub use cursor::push_to_kill_ring;
pub use cursor::record_yank;
pub use cursor::reset_kill_accumulation;
pub use cursor::reset_yank_state;
pub use cursor::update_yank_length;
pub use cursor::yank_pop;
pub use debug::DebugLogLevel;
pub use debug::enable_debug_logging;
pub use debug::get_debug_file_path;
pub use debug::get_debug_filter;
pub use debug::get_debug_log_path;
pub use debug::get_min_debug_log_level;
pub use debug::is_debug_mode;
pub use debug::is_debug_to_stderr;
pub use debug::log_ant_error;
pub use debug::log_for_debugging;
pub use debug_filter::DebugFilter;
pub use debug_filter::extract_debug_categories;
pub use debug_filter::parse_debug_filter;
pub use debug_filter::should_show_debug_categories;
pub use debug_filter::should_show_debug_message;
pub use mtls::clear_mtls_cache;
pub use mtls::configure_mtls;
pub use mtls::get_ca_cert;
pub use mtls::get_client_cert;
pub use mtls::get_client_key;
pub use mtls::is_mtls_enabled;
pub use proxy::clear_proxy_cache;
pub use proxy::configure_global_agents;
pub use proxy::get_http_proxy;
pub use proxy::get_https_proxy;
pub use proxy::get_proxy_config;
pub use proxy::should_bypass_proxy;
pub use semantic_boolean::is_falsy;
pub use semantic_boolean::is_truthy;
pub use semantic_boolean::parse_env_bool;
pub use semantic_boolean::to_bool;
pub use semantic_number::format_with_suffix;
pub use semantic_number::parse_byte_size;
pub use semantic_number::parse_semantic_number;
pub use session_env_vars::clear_session_environment;
pub use session_env_vars::get_session_environment;
pub use session_env_vars::set_session_environment;
pub use managed_env_constants::DANGEROUS_SHELL_SETTINGS;
pub use managed_env_constants::SAFE_ENV_VARS;
pub use managed_env_constants::is_provider_managed_env_var;
pub use managed_env_constants::is_safe_env_var;
pub use memoize::memoize_with_lru;
pub use memoize::memoize_with_ttl;
pub use memoize::memoize_with_ttl_async;
pub use memory_file_detection::detect_session_file_type;
pub use memory_file_detection::detect_session_pattern_type;
pub use memory_file_detection::is_auto_managed_memory_file;
pub use memory_file_detection::is_memory_directory;
pub use memory_file_detection::is_shell_command_targeting_memory;
pub use pdf_utils::extension_for_mime_type;
pub use pdf_utils::is_binary_content_type;
pub use pdf_utils::is_likely_pdf;
pub use powershell::escape_powershell_string;
pub use powershell::is_powershell_available;
pub use modifiers::Modifier;
pub use modifiers::Shortcut;
pub use native_installer::install_package;
pub use native_installer::is_native_installer_available;
pub use notebook::Notebook;
pub use notebook::extract_code_cells;
pub use notebook::is_notebook_file;
pub use notebook::parse_notebook;
pub use paste_store::PasteItem;
pub use paste_store::PasteStore;
pub use plan_mode_v2::get_plan_mode_v2_agent_count;
pub use plan_mode_v2::get_plan_mode_v2_explore_agent_count;
pub use plan_mode_v2::is_plan_mode_interview_phase_enabled;
pub use plan_mode_v2::is_plan_mode_v2_enabled;
pub use plans::Plan;
pub use plans::PlanStatus;
pub use plans::PlanStep;
pub use plans::StepStatus;
pub use process::get_process_id;
pub use process::get_process_info;
pub use process::is_running_in_container;
pub use prompt_editor::PromptEditorConfig;
pub use prompt_editor::PromptTemplate;
pub use prompt_shell_execution::FrontmatterShell;
pub use prompt_shell_execution::build_shell_command;
pub use prompt_shell_execution::execute_prompt_shell;
pub use prompt_shell_execution::execute_shell_commands_in_prompt;
pub use query_context::QueryContext;
pub use query_context::QueryMatch;
pub use query_context::QueryResult as QueryContextResult;
pub use query_guard::QueryGuard;
pub use query_guard::QueryGuardError;
pub use query_helpers::parse_rg_output;
pub use query_helpers::search_with_rg;
pub use query_profiler::QueryProfiler;
pub use queue_processor::QueueProcessor;
pub use read_file_in_range::get_line_count;
pub use read_file_in_range::read_bytes_in_range;
pub use read_file_in_range::read_file_in_range;
pub use render_options::RenderOptions;
pub use ripgrep::is_ripgrep_available;
pub use ripgrep::ripgrep_files;
pub use sandbox::get_sandbox_dir;
pub use sandbox::is_path_in_sandbox;
pub use sandbox::is_sandbox_enabled;
pub use sanitization::escape_shell_arg;
pub use sanitization::escape_html;
pub use sanitization::sanitize_filename;
pub use sanitization::sanitize_path;
pub use sanitization::truncate;
pub use screenshot_clipboard::copy_screenshot_to_clipboard;
pub use screenshot_clipboard::take_screenshot;
pub use sdk_event_queue::DrainedSdkEvent;
pub use sdk_event_queue::SdkEvent;
pub use sdk_event_queue::SdkEventQueue;
pub use sdk_event_queue::SdkEventType;
pub use sdk_event_queue::SdkEventUsage;
pub use sdk_event_queue::TaskProgressParams;
pub use sdk_event_queue::drain_sdk_events;
pub use sdk_event_queue::emit_session_state_changed;
pub use sdk_event_queue::emit_task_progress;
pub use sdk_event_queue::emit_task_started;
pub use sdk_event_queue::emit_task_terminated_sdk;
pub use sdk_event_queue::enqueue_sdk_event;
pub use secure_storage::SecureStorage;
pub use semver::Semver;
pub use semver::parse_semver;
pub use session_activity::ActivityType;
pub use session_activity::SessionActivity;
pub use session_activity::SessionActivityTracker;
pub use session_restore::can_restore_session;
pub use session_restore::restore_session;
pub use session_start::SessionStartConfig;
pub use session_start::create_session;
pub use session_state::SessionState;
pub use session_title::clean_title_for_filename;
pub use session_title::generate_session_title;
pub use session_url::build_session_url;
pub use session_url::extract_session_id;
pub use session_url::is_valid_session_url;
pub use exec_file_no_throw::ExecResult;
pub use exec_file_no_throw::exec_file_no_throw;
pub use exec_file_no_throw::exec_file_no_throw_sync;
pub use exec_file_no_throw::exec_file_no_throw_with_cwd;
pub use platform::SUPPORTED_PLATFORMS;
pub use platform::detect_platform;
pub use platform::get_platform;
pub use set::difference;
pub use set::every;
pub use set::intersects;
pub use set::union;
pub use subprocess_env::GHA_SUBPROCESS_SCRUB;
pub use subprocess_env::register_upstream_proxy_env_fn;
pub use subprocess_env::subprocess_env;

Modules§

abort_controller
AbortController utilities
analyze_context
billing
Billing utilities
circular_buffer
A fixed-size circular buffer that automatically evicts the oldest items when the buffer is full. Useful for maintaining a rolling window of data.
collapse_read_search
Collapse consecutive Read/Search operations into summary groups.
combined_abort_signal
Combined AbortSignal implementation
commit_attribution
Commit attribution utilities for tracking Claude’s contributions.
completion_cache
Shell completion cache utilities
concurrent
Concurrent execution utilities for running multiple async operations with a concurrency limit.
config
Configuration management utilities Translated from /data/home/swei/claudecode/openclaudecode/src/utils/config.ts
content_array
Content array utilities
context
cursor
Cursor utilities for text editing
cwd
debug
Debug logging utilities
debug_filter
Debug filter utilities
diff
Structured patch generation for file edits
env_utils
Environment utilities
env_validation
errors
exec_file_no_throw
file_state_cache
File state cache utilities Translated from /data/home/swei/claudecode/openclaudecode/src/utils/fileStateCache.ts
forked_agent
Helper for running forked agent query loops with usage tracking.
gh_pr_status
GitHub PR status utilities
git
git_diff
git_settings
github_repo_path_mapping
heatmap
Heatmap generation utilities
hooks
Hook utilities for agent tool permission checking, hook execution, and related helpers.
horizontal_scroll
Horizontal scroll window calculation utilities
http
HTTP utility constants and helpers
hyperlink
Hyperlink utilities
ide_path_conversion
IDE path conversion utilities
idle_timeout
Idle timeout management utilities
image_store
Image store utilities
image_validation
Image validation utilities
immediate_command
Immediate command execution utilities
inspector
managed_env_constants
Environment variable constants for managed inference routing.
memoize
Memoization utilities with TTL and LRU support.
memory_file_detection
Memory file detection utilities
messages
Message utilities and helpers Translated from /data/home/swei/claudecode/openclaudecode/src/utils/messages.ts
model
Model utilities
modifiers
mtls
mTLS (mutual TLS) configuration utilities.
native_installer
Native installer utilities.
notebook
Jupyter notebook utilities.
paste_store
Paste store utilities for clipboard history.
path
pdf_utils
PDF utilities
permissions
Permission system utilities — ported from TypeScript openclaudecode.
plan_mode_v2
Plan mode v2 utilities.
plans
Plans utilities for planning mode.
platform
plugins
Plugin utilities - ported from ~/claudecode/openclaudecode/src/utils/plugins/
powershell
PowerShell execution utilities.
process
Process management utilities.
process_user_input
Process user input utilities - translates processUserInput.ts from TypeScript
prompt_editor
Prompt editor utilities.
prompt_shell_execution
Skill prompt shell command execution.
proxy
Proxy configuration utilities.
query_context
Query context utilities.
query_guard
Query guard utilities for protecting against malicious queries.
query_helpers
Query helpers utilities
query_profiler
Query profiler utilities.
queue_processor
Queue processor utilities
read_edit_context
Read and edit context utilities.
read_file_in_range
Read file in range utilities.
release_notes
Release notes utilities.
render_options
ripgrep
Ripgrep utility functions for searching files.
sandbox
Sandbox utilities for isolated execution.
sanitization
Sanitization utilities for cleaning user input and file paths.
screenshot_clipboard
Screenshot clipboard utilities.
sdk_event_queue
SDK event queue utilities. Translated from ~/claudecode/openclaudecode/src/utils/sdkEventQueue.ts
secure_storage
Secure storage utilities.
semantic_boolean
Semantic boolean utilities for interpreting various truthy/falsy values.
semantic_number
Semantic number utilities for parsing numbers from strings.
semver
Semantic version utilities.
sequential
Sequential execution utilities for running async functions in order.
session_activity
Session activity tracking - track and analyze session activity events
session_env_vars
Session environment variables utilities.
session_environment
Session environment utilities.
session_file_access_hooks
Session file access hooks.
session_ingress_auth
Session ingress authentication utilities.
session_restore
Session restore utilities - restore sessions from file-based storage
session_start
Session start utilities.
session_state
Session state management.
session_storage
Session storage utilities - file-based session persistence
session_storage_portable
Portable session storage utilities for moving sessions between machines.
session_title
Session title utilities.
session_url
Session URL utilities.
set
Set utility functions optimized for performance. This code is hot, so it’s optimized for speed.
settings
Settings file I/O for reading/writing Claude Code configuration.
shell
Shell utilities and shell provider abstractions.
side_query
Side query - lightweight non-streaming API call wrapper.
subprocess_env
Env vars to strip from subprocess environments when running inside GitHub Actions. This prevents prompt-injection attacks from exfiltrating secrets via shell expansion (e.g., ${AI_API_KEY}) in Bash tool commands.
swarm
Swarm utilities
system_theme
task
Task utilities module.
task_list
Task management utilities (TodoV2 task list system).
tempfile
Temporary file path generation utilities.
theme
thinking
Thinking configuration and utilities Translated from /data/home/swei/claudecode/openclaudecode/src/utils/config.ts (thinking section) and /data/home/swei/claudecode/openclaudecode/src/utils/thinking.ts
token_budget
tokens
tool_errors
ultraplan
user
User utilities module. Provides user data and analytics functionality.
user_agent
User agent string helpers.
uuid
which
which command implementation for finding executable paths.
words
xdg
xml
yaml
YAML parsing wrapper.
zod_to_json_schema