### Start Daemons for Chess Example Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/zulip-sync.md Starts both the main cryo daemon and the Zulip sync daemon with a 30-second polling interval for the chess-by-mail example. ```bash cryo start cryo-zulip sync --interval 30 ``` -------------------------------- ### Initialize and Start Mr. Lazy Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/mr-lazy/README.md Use these commands to set up and run the Mr. Lazy example. Navigate to the example directory and then initialize and start the chamber. Open the browser chat UI to interact with all chambers. ```bash cd examples/chambers/mr-lazy cryo init && cryo start cd .. && cryohub start --foreground # open the browser chat UI for all chambers in examples/chambers/ ``` -------------------------------- ### Verify Agent Responsiveness Source: https://github.com/giggleliu/cryochamber/blob/main/templates/README.md Start the agent, watch its logs, and then stop it to verify it can respond and operate correctly. This is useful for initial setup and debugging. ```bash cryo start && cryo watch ``` ```bash cryo cancel ``` -------------------------------- ### Navigate to Examples Directory Source: https://github.com/giggleliu/cryochamber/blob/main/README.md Changes the current directory to the cryochamber examples directory. ```bash cd cryochamber/examples/chambers ``` -------------------------------- ### Initialize and Start Chess Chamber Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/chess-by-mail/README.md Navigate to the chess-by-mail example directory and initialize a new Cryochamber instance, then start it. This sets up the AI agent for correspondence chess. ```bash cd examples/chambers/chess-by-mail cryo init && cryo start ``` -------------------------------- ### Verify Agent Setup with Make Check-Agent Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/mr-lazy/README.md This command runs the Mr. Lazy example in daemon mode to verify your AI agent setup. Press Ctrl-C to stop the process. ```bash make check-agent ``` -------------------------------- ### Start Web UI Service Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/daughter/README.md Start the web UI service by navigating to the chambers parent directory and running the cryohub start command. ```bash cd && cryohub start ``` -------------------------------- ### Install Cryochamber Source: https://context7.com/giggleliu/cryochamber/llms.txt Install Cryochamber and its binaries using Cargo. Verify the installation by checking the version. ```bash cargo install cryochamber ``` ```bash cryo --version ``` -------------------------------- ### Start and Watch Mr. Lazy Chamber Source: https://context7.com/giggleliu/cryochamber/llms.txt Demonstrates how to start the 'Mr. Lazy' example chamber and watch its logs. This chamber has a chance to fail and go back to sleep. ```bash cd cryochamber/examples/chambers/mr-lazy cryo start # Mr. Lazy has a 25% chance of actually getting up each session # Otherwise complains and goes back to sleep for 1-5 minutes # Watch the creative complaints in the log cryo watch ``` -------------------------------- ### Start Cryohub Dashboard Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/hub.md Initiates the Cryohub dashboard. Use `--foreground` to run it in the current terminal session; omit it to install and run Cryohub as a background service that survives reboots. ```bash cryohub start ``` ```bash cryohub start --foreground ``` -------------------------------- ### Example Agent Log Output Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/getting-started.md This is an example of the log output you might see after starting a new chamber and its first session completes. ```text --- CRYO SESSION 1 | 2026-02-25T01:13:12Z --- task: Continue the plan agent: opencode inbox: 0 messages [01:13:12] agent started (pid 75159) [01:13:50] hibernate: wake=2026-02-25T01:16, exit=0, summary="Completed first task, scheduling next check" [01:14:00] agent exited (code 0) [01:14:00] session complete --- CRYO END --- ``` -------------------------------- ### Installation Source: https://context7.com/giggleliu/cryochamber/llms.txt Instructions for installing Cryochamber using Cargo and verifying the installation. ```APIDOC ## Installation Install Cryochamber from crates.io using Cargo. ```bash # Install all binaries: cryo, cryo-agent, cryo-gh, cryo-zulip, cryohub car go install cryochamber # Verify installation cryo --version ``` ``` -------------------------------- ### Initialize Chess Example Sync Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/zulip-sync.md Initializes the Zulip sync for the chess-by-mail example, linking it to the 'chess-game' Zulip stream. ```bash cryo-zulip init --config ~/.zuliprc --stream chess-game ``` -------------------------------- ### Example Session Notes Entry Source: https://github.com/giggleliu/cryochamber/blob/main/templates/protocol.md Append a new section to NOTES.md per session, starting with an ISO timestamp, followed by a bulleted list of key facts for future reference. ```markdown ## 2026-04-26T03:35:28 - Session 3: father answered that the moon follows Earth. - Last question asked: "Daddy, why doesn't the moon fall down?" - Waiting for answer: yes. - Next planned check: +2 hours after this reply. ``` -------------------------------- ### Start Correspondence Chess Chamber Source: https://context7.com/giggleliu/cryochamber/llms.txt Starts the correspondence chess example chamber. The agent will initialize the board, suggest moves, and adapt to human responses. ```bash # Clone and navigate to the example git clone https://github.com/GiggleLiu/cryochamber cd cryochamber/examples/chambers/chess-by-mail # Start the chamber cryo start # The agent will: # 1. Initialize the board and suggest opening moves # 2. Wait for human moves via inbox messages # 3. Respond with counter-moves and suggestions # 4. Adapt check intervals based on human response time ``` -------------------------------- ### Navigate to Chess Example Chamber Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/zulip-sync.md Changes the current directory to the chess-by-mail example chamber. ```bash cd examples/chambers/chess-by-mail ``` -------------------------------- ### Branch A: Initial Session Setup Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/chess-by-mail/plan.md Handles the first session of a game. It displays the board, suggests opening moves, sends the initial state, and schedules a default check-in. ```bash uv run chess_engine.py board cryo-agent send "" cryo-agent todo add "Check inbox for white's opening move" --at $(cryo-agent time "+30 minutes") cryo-agent hibernate --summary "Sent opening board; waiting for white's first move." ``` -------------------------------- ### Install Cryochamber CLI Source: https://github.com/giggleliu/cryochamber/blob/main/README.md Installs the cryochamber binaries, including cryo, cryo-agent, cryo-gh, cryo-zulip, and cryohub, using cargo. ```bash cargo install cryochamber ``` -------------------------------- ### Start Cryohub Daemon Source: https://github.com/giggleliu/cryochamber/blob/main/README.md Starts the cryohub in the foreground for managing chambers. Ensure you are in the examples/chambers directory. ```bash cryohub start --foreground ``` -------------------------------- ### Start Cryohub for UI Access Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/chess-by-mail/README.md After initializing and starting the chess chamber, navigate to its parent directory and start the Cryohub to access the browser-based chat UI for all chambers. ```bash cd .. && cryohub start --foreground ``` -------------------------------- ### Start Cryohub Dashboard Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/getting-started.md Starts the cryohub dashboard. This command should be run from a workspace directory, not a chamber directory. ```bash cryohub start ``` -------------------------------- ### Start Cryohub with Custom Host and Port Source: https://context7.com/giggleliu/cryochamber/llms.txt Starts the Cryohub dashboard on a specified host and port. Be aware that this may expose the dashboard without authentication. ```bash cryohub start --host 0.0.0.0 --port 9000 # Warning: exposes dashboard without authentication ``` -------------------------------- ### Start Cryohub Web Dashboard Source: https://context7.com/giggleliu/cryochamber/llms.txt Starts the Cryohub web dashboard service. Ensure you are in the workspace root directory containing chamber subdirectories. ```bash mkdir -p ~/my-chambers # Layout: # ~/my-chambers/ # chess-by-mail/ # cryo.toml + plan.md # mr-lazy/ # reports/ # Start the hub from the workspace root (NOT from a chamber directory) cd ~/my-chambers cryohub start # Output: Serving dashboard at http://127.0.0.1:8765 ``` -------------------------------- ### Chess Engine Commands Source: https://context7.com/giggleliu/cryochamber/llms.txt Example commands for interacting with the chess engine used in the correspondence chess example. ```bash # The agent uses the chess engine: # uv run chess_engine.py board # Print ASCII board # uv run chess_engine.py move FEN e2e4 # Apply move # uv run chess_engine.py suggest FEN 3 # Get 3 move suggestions # uv run chess_engine.py legal FEN # List all legal moves # uv run chess_engine.py status FEN # Check game status ``` -------------------------------- ### Agent Session Workflow Example Source: https://context7.com/giggleliu/cryochamber/llms.txt A complete workflow for an agent session, including orienting, working, recording notes, sending status updates, and scheduling the next wake time. ```bash # Step 1: Orient - Read the session context (provided in prompt) # - ## Current Time, ## Task, ## TODO List, ## Inbox are pre-rendered # - Read plan.md for objectives # - Read NOTES.md for previous session context # Step 2: Work - Execute the task # Check for inbox messages cryo-agent receive # Do the actual work (example: run tests) pytest tests/ # Step 3: Record - Update notes and send status # Append to NOTES.md with timestamp and summary echo "## 2026-04-25T10:30:00 - Session 5: Fixed failing tests in auth module - All 47 tests now passing - Next: Deploy to staging" >> NOTES.md # Send human-visible status update cryo-agent send "Fixed 3 failing tests in auth module. All tests passing now." # Step 4: Schedule next wake cryo-agent todo add "Deploy to staging environment" --at $(cryo-agent time "+15 minutes") # Step 5: Hibernate (MUST be the last command) cryo-agent hibernate --summary "Fixed auth tests, scheduling staging deploy" ``` -------------------------------- ### Start Cryochamber Daemon Source: https://github.com/giggleliu/cryochamber/blob/main/docs/cryo-gh.md Start the main cryochamber daemon, which runs in the background. ```bash cryo start ``` -------------------------------- ### Start and Manage a Chamber Daemon Source: https://context7.com/giggleliu/cryochamber/llms.txt CLI commands for starting, monitoring, and managing the Cryochamber daemon. ```APIDOC ## Start and Manage a Chamber Daemon Control the chamber lifecycle with the `cryo` CLI commands. ```bash # Start the daemon (installs OS service that survives reboots) cryo start # Start with a specific agent override cryo start --agent claude # Start with session timeout (1 hour) cryo start --max-session-duration 3600 # Check daemon status, session number, and next wake time cryo status # Output: # status: running # session: 5 # next wake: 2026-04-25T14:30:00 # Follow the live session log cryo watch # Print the full session log cryo log # Force an immediate wake cryo wake # Wake with a message cryo wake "Please check the latest PR" # Restart the daemon cryo restart # Stop the daemon and clean up cryo cancel # List all running cryo daemons on this machine cryo ps # Kill all running daemons cryo ps --kill-all ``` ``` -------------------------------- ### Start GitHub Sync Daemon Source: https://github.com/giggleliu/cryochamber/blob/main/docs/cryo-gh.md Start the background sync daemon for GitHub Discussions. The interval defaults to the value in cryo.toml or 5 seconds. ```bash cryo-gh sync [--interval N] ``` -------------------------------- ### Start and Watch Cryochamber Session Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/daughter/README.md Start a single cryochamber session and immediately watch its logs to verify agent responsiveness. ```bash cryo start && cryo watch ``` -------------------------------- ### Start Cryohub Daemon (Background) Source: https://github.com/giggleliu/cryochamber/blob/main/README.md Starts the cryohub daemon in the background from a workspace root directory containing chamber subdirectories. ```bash cd ~/my-chambers cryohub start ``` -------------------------------- ### Start Cryochamber and Zulip Sync Daemon Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/chess-by-mail/README.md After initializing the Zulip integration, start the main Cryochamber agent and the Zulip sync daemon. The sync daemon will poll for new messages in the specified Zulip stream and deliver them to the agent. ```bash cryo init && cryo start cryo-zulip sync --interval 30 ``` -------------------------------- ### Start GitHub Sync Daemon Source: https://context7.com/giggleliu/cryochamber/llms.txt Starts the daemon that synchronizes chamber activity with GitHub Discussions. It polls for new comments and posts session logs. ```bash # Start the cryo daemon cryo start # Start the GitHub sync daemon (polls every 5 seconds by default) cryo-gh sync ``` -------------------------------- ### Start Zulip Sync with Custom Poll Interval Source: https://context7.com/giggleliu/cryochamber/llms.txt Starts the Zulip sync daemon with a specified polling interval in seconds. ```bash cryo-zulip sync --interval 30 ``` -------------------------------- ### Start Zulip Sync Daemon Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/zulip-sync.md Starts the cryo-zulip sync daemon which polls Zulip for new messages and watches for outbox files. The polling interval can be overridden with the --interval flag. ```bash cryo-zulip sync ``` ```bash cryo-zulip sync --interval 30 ``` -------------------------------- ### Verify cryochamber Installation Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/getting-started.md Checks if the cryochamber installation was successful by displaying the version. This command should make `cryo`, `cryo-agent`, `cryo-gh`, `cryo-zulip`, and `cryohub` available on your PATH. ```bash cryo --version ``` -------------------------------- ### Start GitHub Sync with Custom Poll Interval Source: https://context7.com/giggleliu/cryochamber/llms.txt Starts the GitHub sync daemon with a specified polling interval in seconds. ```bash cryo-gh sync --interval 30 ``` -------------------------------- ### Copy Example Chamber Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/getting-started.md Copies an example chamber ('mr-lazy') into your workspace. This is one method for creating a new chamber. ```bash cp -r /examples/chambers/mr-lazy ~/my-chambers/my-chamber ``` -------------------------------- ### Start Zulip Sync Daemon Source: https://context7.com/giggleliu/cryochamber/llms.txt Starts the daemon that synchronizes chamber activity with a Zulip stream. It polls for new messages and posts session logs. ```bash # Start the cryo daemon cryo start # Start the Zulip sync daemon cryo-zulip sync ``` -------------------------------- ### Control Daemon Behavior with Environment Variables Source: https://context7.com/giggleliu/cryochamber/llms.txt Demonstrates how to control Cryochamber daemon behavior using environment variables, such as disabling OS service installation or specifying XDG directories. ```bash # Disable OS service installation (use plain background process) CRYO_NO_SERVICE=1 cryo start # The daemon respects standard XDG directories: # - PID registry: $XDG_RUNTIME_DIR/cryo/ (fallback: ~/.cryo/daemons/) # - Services: ~/Library/LaunchAgents/ (macOS) or ~/.config/systemd/user/ (Linux) ``` -------------------------------- ### Send Chess Move to Agent Source: https://context7.com/giggleliu/cryochamber/llms.txt Sends a chess move to the agent in the correspondence chess example. ```bash cryo send "e4" ``` -------------------------------- ### Run the dialog session Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/daughter/plan.md Execute the `cryo-agent dialog` command at the start of each session to view the complete conversation history. ```bash cryo-agent dialog ``` -------------------------------- ### Initialize Zulip Integration for Chess Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/chess-by-mail/README.md Set up the Cryochamber-Zulip integration by initializing it with your Zulip configuration file and specifying the stream for chess games. This requires a `~/.zuliprc` file with bot credentials. ```bash cd examples/chambers/chess-by-mail # Connect to a Zulip stream (requires a zuliprc with bot credentials) cryo-zulip init --config ~/.zuliprc --stream chess-game ``` -------------------------------- ### Check Cryohub Service Status Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/hub.md Displays the status of the Cryohub service for the current directory and lists all other Cryohub services installed on the machine. This helps in locating hubs started from different working directories. ```bash cryohub status ``` -------------------------------- ### Initialize GitHub Discussion Sync Source: https://github.com/giggleliu/cryochamber/blob/main/docs/cryo-gh.md Create a GitHub Discussion and generate the gh-sync.json configuration file for your repository. ```bash cryo-gh init --repo owner/repo ``` -------------------------------- ### Set up Cryohub for a Single Chamber Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/hub.md Creates a parent directory and a symbolic link to a single chamber to manage it using the Cryohub UI. This is useful when you only have one chamber. ```bash mkdir -p ~/cryo-chambers ``` ```bash ln -s "$(pwd)" ~/cryo-chambers/my-chamber ``` ```bash cd ~/cryo-chambers && cryohub start ``` -------------------------------- ### Sample cryo.toml Configuration Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/configuration.md This TOML file defines project-specific settings for cryochamber, including the agent to use, session timeout, and inbox watching behavior. Uncomment `report_time` and `report_interval` to enable periodic status reports. ```toml # cryo.toml — cryochamber project configuration agent = "opencode" # Agent command (opencode, claude, codex, ...) max_session_duration = 0 # Session timeout in seconds (0 = no timeout) watch_inbox = true # Wake immediately when a new inbox file appears # Periodic status report written to messages/outbox/ # report_time = "09:00" # local wall-clock time (HH:MM) # report_interval = 24 # hours between reports (0 disables) ``` -------------------------------- ### Cryo-Zulip Command Reference Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/zulip-sync.md Provides a reference for cryo-zulip commands, including initialization, starting/stopping sync, and one-shot operations. ```bash cryo-zulip init --config --stream [--topic ] [--history] ``` ```bash cryo-zulip sync [--interval N] ``` ```bash cryo-zulip unsync ``` ```bash cryo-zulip pull ``` ```bash cryo-zulip push ``` ```bash cryo-zulip status ``` -------------------------------- ### Initialize Specific Messaging Channels Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/personal-assistant/README.md Initialize services for specific messaging platforms. Ensure you have the necessary configuration files (e.g., './zuliprc') and specify the correct repository or stream. ```bash cryo-zulip init --config ./zuliprc --stream "my-stream" ``` ```bash cryo-gh init --repo owner/repo ``` -------------------------------- ### Initialize Zulip Stream Sync Source: https://context7.com/giggleliu/cryochamber/llms.txt Initializes the Zulip sync for a given stream. Requires a zuliprc file with bot credentials. Optionally specify a custom topic or import history. ```bash # Prerequisites: zuliprc file with bot credentials # ~/.zuliprc format: # [api] # email=bot@example.zulipchat.com # key=your-api-key # site=https://example.zulipchat.com # Initialize sync with a Zulip stream cryo-zulip init --config ~/.zuliprc --stream my-project # Use a custom topic (default: "cryochamber") cryo-zulip init --config ~/.zuliprc --stream my-project --topic updates # Import existing message history on first pull cryo-zulip init --config ~/.zuliprc --stream my-project --history ``` -------------------------------- ### Get Time with Relative Offset Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/commands.md Get the current local time with a specified relative offset. Supported units include minutes, hours, days, and weeks. ```bash cryo-agent time "+30 minutes" ``` -------------------------------- ### Initial Contact and Mission Assignment Source: https://github.com/giggleliu/cryochamber/blob/main/templates/plan.md On first contact, send an introduction and schedule a fallback TODO. If the operator provides a mission, update the plan.md file. ```bash cryo-agent send "Greetings, I am your interstellar traveler, what is my mission this time? You can say: 'Update your plan: say greeting on every 10AM'." ``` ```bash cryo-agent todo add "check in: any update from operator?" --at <+1 day> ``` -------------------------------- ### Get Time with ISO 8601 Timestamp Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/commands.md Get the current local time, validating and normalizing a provided ISO 8601 timestamp. This ensures accurate time handling. ```bash cryo-agent time "2026-04-25T10:00" ``` -------------------------------- ### Start and Manage Chamber Daemon Source: https://context7.com/giggleliu/cryochamber/llms.txt Control the chamber daemon lifecycle, including starting, checking status, watching logs, and stopping the service. Supports agent overrides and session timeouts. ```bash cryo start ``` ```bash cryo start --agent claude ``` ```bash cryo start --max-session-duration 3600 ``` ```bash cryo status ``` ```bash cryo watch ``` ```bash cryo log ``` ```bash cryo wake ``` ```bash cryo wake "Please check the latest PR" ``` ```bash cryo restart ``` ```bash cryo cancel ``` ```bash cryo ps ``` ```bash cryo ps --kill-all ``` -------------------------------- ### Initialize Messaging Channel Services Source: https://github.com/giggleliu/cryochamber/blob/main/templates/README.md Initialize specific messaging channel integrations. Ensure you have the necessary configuration files (e.g., zuliprc) or repository details. ```bash cryo-zulip init --config ./zuliprc --stream "my-stream" ``` ```bash cryo-zulip sync ``` ```bash cryo-gh init --repo owner/repo ``` ```bash cryo-gh sync ``` ```bash cd && cryohub start ``` -------------------------------- ### Build and Test with Cargo Source: https://github.com/giggleliu/cryochamber/blob/main/CLAUDE.md Use these Cargo commands for building, testing, formatting, and linting the project. Warnings are treated as errors for linting. ```bash cargo build ``` ```bash cargo test ``` ```bash cargo test daemon::tests ``` ```bash cargo test test_event_logger ``` ```bash cargo fmt --all ``` ```bash cargo clippy --all-targets -- -D warnings ``` -------------------------------- ### Initialize a New Chamber Source: https://context7.com/giggleliu/cryochamber/llms.txt Create a new chamber directory and initialize it with default or specific agent configurations. This generates essential configuration and plan files. ```bash mkdir ~/my-chambers/my-project cd ~/my-chambers/my-project ``` ```bash cryo init ``` ```bash cryo init --agent claude ``` -------------------------------- ### Clone Cryochamber Repository Source: https://github.com/giggleliu/cryochamber/blob/main/README.md Clones the cryochamber project from GitHub to access examples and source code. ```bash git clone https://github.com/GiggleLiu/cryochamber ``` -------------------------------- ### Stop Cryohub Service Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/hub.md Stops and uninstalls the Cryohub service for the current directory. Ensure you are in the same directory where the hub was started. ```bash cryohub stop ``` -------------------------------- ### Get Selected Provider ID Source: https://github.com/giggleliu/cryochamber/blob/main/templates/web_shell.html Retrieves the trimmed and lowercased ID of the currently selected provider from the input element. ```javascript function selectedProviderId() { return providerInput.value.trim(); } ``` -------------------------------- ### Show GitHub Sync Configuration Source: https://github.com/giggleliu/cryochamber/blob/main/docs/cryo-gh.md Display the current sync configuration status. ```bash cryo-gh status ``` -------------------------------- ### Initialize Cryochamber Agent Source: https://github.com/giggleliu/cryochamber/blob/main/docs/cryo-gh.md Initialize a cryochamber project with a specified agent. This command is typically followed by editing the plan.md file. ```bash cryo init --agent claude # edit plan.md with your task ``` -------------------------------- ### Change Directory to Chamber Workspace Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/hub.md Navigate to the directory containing your chamber subdirectories before starting the hub. This is the root directory Cryohub will scan for chambers. ```bash cd ~/my-chambers ``` -------------------------------- ### Follow Cryochamber Live Log Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/daughter/README.md Follow the live log output of the cryochamber daemon. ```bash cryo watch ``` -------------------------------- ### Get Current Time with Cryo-Agent Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/mr-lazy/plan.md Use this command to retrieve the current time within the Cryochamber environment. Always use this for accurate timestamps. ```bash cryo-agent time ``` -------------------------------- ### Initialize Cryochamber Repository Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/faq.md If you encounter a 'cryo.toml not found' error, it means the chamber has not been initialized. Run `cryo init` within the chamber directory to create the necessary configuration file. ```bash cryo init ``` -------------------------------- ### Agent IPC Commands: Time Utilities Source: https://context7.com/giggleliu/cryochamber/llms.txt Agent commands for getting the current time in ISO 8601 format and computing relative time offsets. ```bash cryo-agent time ``` ```bash cryo-agent time "+30 minutes" ``` ```bash cryo-agent time "+1 day" ``` ```bash cryo-agent time "2026-04-25T14:00" ``` -------------------------------- ### Chess Engine Board Display Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/chess-by-mail/plan.md Prints the ASCII representation of the chessboard. Use this to visualize the current game state. Defaults to the starting position if no FEN is provided. ```bash uv run chess_engine.py board [FEN] ``` -------------------------------- ### Get Last Visible State Source: https://github.com/giggleliu/cryochamber/blob/main/templates/web_shell.html Determines the session and day of the last visible message in a container, excluding `
` elements. Returns null for session/day if not found. ```javascript function lastVisibleState(box) { for (let i = box.children.length - 1; i >= 0; i--) { const child = box.children[i] if (child.tagName === 'DETAILS') continue; const day = child.dataset?.day; if (!day) continue; const sessRaw = child.dataset?.session; return { day, session: sessRaw === undefined || sessRaw === '' ? null : Number(sessRaw) }; } return { day: null, session: null }; } ``` -------------------------------- ### Initialize Zulip Messaging Source: https://github.com/giggleliu/cryochamber/blob/main/examples/chambers/daughter/README.md Initialize the Zulip messaging channel by providing configuration and stream details. ```bash cryo-zulip init --config ./zuliprc --stream "my-stream" ``` -------------------------------- ### Cryochamber Runtime Directory Structure Source: https://context7.com/giggleliu/cryochamber/llms.txt Illustrates the typical directory structure created by Cryochamber after initialization and operation, including configuration, state, logs, and message directories. ```text my-chamber/ ├── cryo.toml # Project configuration (check into git) ├── plan.md # Task description and objectives ├── NOTES.md # Agent's cross-session memory ├── CLAUDE.md # Protocol file (for Claude agent) ├── timer.json # Runtime state (session number, PID lock) ├── todo.json # Pending/done TODO items ├── cryo.log # Structured event log ├── cryo-agent.log # Agent stdout/stderr ├── messages/ │ ├── inbox/ │ │ └── archive/ │ └── outbox/ │ └── archive/ ├── .cryo/ │ ├── cryo.sock # Unix socket for IPC │ └── zuliprc # Zulip credentials (never commit!) ├── gh-sync.json # GitHub sync state (if configured) ├── cryo-gh-sync.log # GitHub sync log (if configured) ├── zulip-sync.json # Zulip sync state (if configured) └── cryo-zulip-sync.log # Zulip sync log (if configured) ``` -------------------------------- ### Initialize Drawer Tabs Event Listeners Source: https://github.com/giggleliu/cryochamber/blob/main/templates/web_shell.html Sets up event listeners for drawer tabs to activate corresponding panels when clicked. It also handles initial tab activation based on URL query parameters. ```javascript function initDrawerTabs() { document.querySelectorAll('.drawer-tab').forEach(tab => { tab.addEventListener('click', () => activateDrawerTab(tab.getAttribute('data-tab'))); }); // ?drawer=todos|sync|settings|log opens that drawer panel on load. // Useful for direct links and scripted screenshots. const initial = new URLSearchParams(window.location.search).get('drawer'); if (initial) activateDrawerTab(initial); } ``` -------------------------------- ### Configuration (cryo.toml) Source: https://context7.com/giggleliu/cryochamber/llms.txt Explanation of the configuration options available in the `cryo.toml` file. ```APIDOC ## Configuration (cryo.toml) Configure the chamber behavior through the `cryo.toml` file. ```toml # cryo.toml — Cryochamber project configuration # Agent command (e.g. "opencode", "claude", "codex") agent = "opencode" # Session timeout in seconds (0 = no timeout) max_session_duration = 0 # Wake immediately when a new inbox file appears watch_inbox = true # Periodic status report written to messages/outbox/ report_time = "09:00" # local wall-clock time (HH:MM) report_interval = 24 # hours between reports (0 disables) ``` ``` -------------------------------- ### Create Workspace Directory Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/getting-started.md Creates a new directory to serve as a workspace for your chambers. This is a prerequisite for organizing your projects. ```bash mkdir -p ~/my-chambers ``` -------------------------------- ### Start GitHub Discussion Sync Daemon Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/github-sync.md Initiates the background daemon that synchronizes GitHub Discussion comments with the local filesystem. The polling interval can be adjusted using the `--interval` flag. ```bash cryo-gh sync ``` ```bash cryo-gh sync --interval 30 ``` -------------------------------- ### Override Agent Configuration Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/configuration.md Use the `--agent` flag with `cryo start` to override the agent specified in `cryo.toml` for the current session. This override is stored in `timer.json` and does not modify the configuration file. ```bash cryo start --agent claude # override the agent ``` -------------------------------- ### Managing TODO List Source: https://github.com/giggleliu/cryochamber/blob/main/templates/plan.md Add, complete, list, and remove entries from the TODO list using cryo-agent todo. ```bash cryo-agent todo {add,done,list,remove} ``` -------------------------------- ### Override Session Duration Configuration Source: https://github.com/giggleliu/cryochamber/blob/main/docs/src/configuration.md Use the `--max-session-duration` flag with `cryo start` to override the session timeout specified in `cryo.toml`. The new duration is set in seconds and stored in `timer.json` for the session. ```bash cryo start --max-session-duration 3600 # override the timeout ``` -------------------------------- ### Initial State and URL Parsing Source: https://github.com/giggleliu/cryochamber/blob/main/templates/web_shell.html Initializes the application state, including chambers, current ID, and detail sequence. It also parses the chamber ID from the URL path. ```javascript const state = { chambers: [], currentId: null, detailSeq: 0, lifecyclePending: {}, chamberHistoryOpen: false, }; function urlChamberId() { const m = window.location.pathname.match(/^\/c\/(.+)$/); return m ? m[1] : null; } ``` -------------------------------- ### Synchronize Message Sync Signature Source: https://github.com/giggleliu/cryochamber/blob/main/templates/web_shell.html Generates a signature string for message sync configurations. Returns '0:' if no sync data is provided. The signature format includes backend, running status, installed status, target, and last pushed session. ```javascript function syncSignature(sync) { if (!sync || !sync.length) return '0:'; return sync.length + ':' + sync.map(s => `${s.backend}|${s.running}|${s.installed}|${s.target}|${s.last_pushed_session ?? ''} ` ).join(','); } ``` -------------------------------- ### Update Lifecycle Buttons Source: https://github.com/giggleliu/cryochamber/blob/main/templates/web_shell.html Manages the display and state of lifecycle buttons (Start, Stop, Reset, Archive) based on the chamber's current status. It checks for running state, configuration errors, completion, and pending operations. Requires `btn`, `confirmReset`, `confirmArchive`, and `lifecycle` functions. ```javascript function updateLifecycleButtons(entry) { const pending = state.lifecyclePending[entry.id]; const sig = `${entry.running}|${!!entry.config_error}|${!!entry.completed}|${!!pending}`; if (sig === view.lastLifecycleSig) return; view.lastLifecycleSig = sig; const btns = view.lifecycleBtns; btns.innerHTML = ''; if (entry.running) { btns.appendChild(btn('stop', () => lifecycle(entry.id, 'stop'), '', pending)); } else if (!entry.config_error && !entry.completed) { // A completed plan has nothing to resume — hide Start. Reset stays // available so the operator can archive the run and begin a new plan. btns.appendChild(btn('start', () => lifecycle(entry.id, 'start'), 'primary', pending)); } if (!entry.running && !entry.config_error) { btns.appendChild(btn('reset', () => confirmReset(entry.id, entry.name), 'danger', pending)); } if (!entry.running) { btns.appendChild(btn('archive', () => confirmArchive(entry.id, entry.name), 'danger', pending)); } } ``` -------------------------------- ### Build Thread Source: https://github.com/giggleliu/cryochamber/blob/main/templates/web_shell.html Initializes and renders a chat thread. Appends a thread container to the pane and renders the initial messages. Scrolls to the bottom after layout. ```javascript function buildThread(pane, messages) { const box = document.createElement('div'); box.className = 'thread'; pane.appendChild(box); view.msgBox = box; view.allMessages = messages || []; renderThreadContents(); // Scroll to bottom after layout settles (deep-link + font load timing). requestAnimationFrame(() => { box.scrollTop = box.scrollHeight; }); } ```