# Start headless browsers

In this tutorial you will launch Chroma (Chromium-based) and Junglefox (Firefox-based) profiles in headless mode, choose the correct flags, and balance performance with detection resilience.

# Prerequisites

# 1. Start Chroma headless

Use --headless for Chroma. Current Chroma builds map this to the modern headless mode automatically; you no longer need the historical --headless=new variant. If you need deeper Chromium implementation detail, see the official Chrome headless guide: https://developer.chrome.com/docs/chromium/headless.

from kameleo.local_api_client.models import BrowserSettings

client.profile.start_profile(profile.id, BrowserSettings(
    arguments=[
        'headless'
    ]
))
print('Started Chroma headless')
await client.profile.startProfile(profile.id, {
    arguments: ["headless"],
});
console.log("Started Chroma headless");
using System.Collections.Generic;
using Kameleo.LocalApiClient.Model;

await client.Profile.StartProfileAsync(profile.Id, new BrowserSettings
{
    Arguments = new List<string>
    {
        "headless"
    }
});
Console.WriteLine("Started Chroma headless");

# 2. Start Junglefox headless

Firefox (Junglefox) uses the single-dash -headless flag. Keep arguments minimal; masking already supplies coordinated feature settings. For more background on Firefox headless behavior, consult Mozilla's article: https://hacks.mozilla.org/2017/12/using-headless-mode-in-firefox/.

from kameleo.local_api_client.models import BrowserSettings

client.profile.start_profile(profile_id, BrowserSettings(
    arguments=[
        'headless'
    ]
))
print('Started Junglefox headless')
await client.profile.startProfile(profile.id, {
    arguments: ["headless"],
});
console.log("Started Junglefox headless");
using System.Collections.Generic;
using Kameleo.LocalApiClient.Model;

await client.Profile.StartProfileAsync(profile.Id, new BrowserSettings
{
    Arguments = new List<string>
    {
        "headless"
    }
});
Console.WriteLine("Started Junglefox headless");

# 3. More information

If you need to dive deeper into native browser headless capabilities or limitations, refer to the upstream documentation: