Skip to main content
Read the Notte skill and follow its setup instructions when setting up Notte or building browser automation. This is the shared source for CLI setup, authentication, and the browser-to-code workflow.
Every Notte session follows a predictable lifecycle from creation to termination. Understanding this lifecycle helps you build reliable automation workflows and manage resources effectively.

Session States

Sessions transition through these states:
  • active - Session is running and ready to accept operations
  • closed - Session has been terminated normally
  • error - Session encountered an error and terminated unexpectedly
  • timed_out - Session exceeded its timeout duration

Creating a Session

Create a new session using the context manager pattern (recommended):
Use Python’s with statement or TypeScript’s session.use() to stop sessions even if errors occur.

Getting Session Details

Retrieve current information about your session:
string
Unique identifier for the session
string
Current status: active, closed, error, or timed_out
datetime
Session creation timestamp
datetime | None
Session closure timestamp (None if still active)
datetime
Last operation timestamp
integer
Session timeout in minutes
timedelta
Total session duration

Listing Sessions

Query all your active sessions:

Stopping a Session

Sessions are automatically stopped when using the context manager, but you can also stop them manually:
Stopping a session is idempotent - you can safely call it multiple times without errors.

Complete Lifecycle Example

Here’s a complete example demonstrating best practices for session management:

Connecting to Existing Sessions

You can reconnect to an existing session using its session_id:

Error Handling

The context manager automatically handles cleanup, even when errors occur:

Best Practices

Follow these patterns to build reliable, cost-effective automation:

1. Always Use Context Managers

Python’s with statement and TypeScript’s use() callback guarantee cleanup:

2. Set Appropriate Timeouts

Match timeout to task duration with a buffer for delays:
  • Quick tasks: 3-5 minutes (default is 3)
  • Data scraping: 10-15 minutes
  • Long workflows: 20-30 minutes

3. Monitor Session State

Check session status before long-running operations:

4. Handle Cleanup Gracefully

Even with context managers, handle interrupts:
handle_interrupts.py

Session Lifecycle Diagram

Next Steps

Session Configuration

Configure sessions with advanced options

Recordings

Record and replay session activity

Live View

Watch sessions in real-time

Cookies

Persist authentication across sessions