Change Session’s Profile

This script changes the current session’s profile to the profile named “Default”. It demonstrates getting the list of profiles and changing a session’s profile.

Note that if the session is divorced from its underlying profile (such as by making a change in the Session > Edit Session panel) then those changes will not be affected by this script. In order to override them, you should convert the partial profile partial into a full profile by calling await partial.async_get_full_profile() and passing that to async_set_profile.

#!/usr/bin/env python3.7

import iterm2

async def main(connection):
    app = await iterm2.async_get_app(connection)
    # Query for the list of profiles so we can search by name. This returns a
    # subset of the full profiles so it's fast.
    partialProfiles = await iterm2.PartialProfile.async_query(connection)
    # Iterate over each partial profile
    for partial in partialProfiles:
        if == "Default":
            # This is the one we're looking for. Change the current session's
            # profile.
            full = await partial.async_get_full_profile()
            await app.current_terminal_window.current_tab.current_session.async_set_profile(full)