Cookies

https://x.com/LumiTeh / https://www.lumiteh.com/ / https://github.com/LumiTeh-hub

Overview

Cookies provide a flexible way to authenticate your sessions in LumiTeh. While using the secure vault is recommended for credential management, cookies offer an alternative approach that can be more convenient for certain use cases.

​Uploading Cookies to Your Session

Here’s how to upload cookies to your LumiTeh session:

from lumiteh_sdk import LumiTehClient

# Upload cookies for github.com to automatically login
cookies = [
    dict(
        name="sb-db-auth-token",
        value="base64-cookie-value",
        domain="github.com",
        path="/",
        expires=9778363203.913704,
        httpOnly=False,
        secure=False,
        sameSite="Lax"
    )
]

# create a new session
lumiteh = LumiTehClient()
with lumiteh.Session() as session:
    _ = session.set_cookies(cookies=cookies)  # can also set cookie_file="path/to/cookies.json"

    # Use the cookies in your session
    agent = lumiteh.Agent(session=session, max_steps=5)
    res = agent.run(
        task="go to lumitehlabs/lumiteh repo and get info. Fail if not logged in",
        url="https://github.com/lumitehlabs/lumiteh",
    )

    # or get the cookies from the session
    cookies_resp = session.get_cookies()

​Important Notes

  • The cookies file must be a valid JSON file

  • Cookies are available for all sessions started after upload

  • You need to manage cookie expiration manually

  • Upload new cookies when they expire

​Extracting Cookies from Your Browser

Here’s a step-by-step guide to extract cookies from your browser:

import json
from pathlib import Path
from patchright.sync_api import sync_playwright

cookie_path = Path("github_cookies.json")

# Initialize Playwright
with sync_playwright() as playwright:
    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()

    # Navigate to login page
    github_login_url = "https://github.com/login"
    page.goto(github_login_url)

    print("Please log into GitHub in the browser window...")
    input("Press Enter after you've logged in...")

    # Save cookies to file
    print("Login successful. Saving cookies...")
    cookies = context.cookies(urls=["https://github.com"])

    if cookies:
        cookie_path.write_text(json.dumps(cookies, indent=4))
        print(f"Cookies saved to {cookie_path}")
    else:
        print("No cookies found to save.")

Of course, you can also retrieve them from your LumiTeh session:

from lumiteh_sdk import LumiTehClient
import json

lumiteh = LumiTehClient()
with lumiteh.Session() as session:
    # Observe the state of a webpage
    obs = session.observe(url="https://google.com/travel/flights")

    # Get and save cookies from the session
    with open("cookies.json", "w") as f:
        cookies = session.get_cookies()
        json.dump(cookies, f)

​Best Practices

  1. Security

    • Store cookie files securely

    • Don’t commit cookie files to version control

    • Regularly rotate cookies for sensitive services

  2. Maintenance

    • Monitor cookie expiration dates

    • Set up reminders to refresh cookies

    • Keep backup copies of valid cookies

  3. Troubleshooting

    • If a session fails, try uploading fresh cookies

    • Check if cookies are still valid

    • Verify the cookie file format is correct

Last updated