> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mirage.strukto.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Himalaya

> Set up the Himalaya mail CLI with Python or TypeScript.

Create credentials in [Email setup](/home/setup/email), then register them on
an existing `ws`. Commands: [Python](/python/cli/himalaya) ·
[TypeScript](/typescript/cli/himalaya).

<Tabs>
  <Tab title="Python" icon="https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/python-logo.svg?fit=max&auto=format&n=F9Lv_nTaj6By6crk&q=85&s=cf5b268d330f7db46ea5cf6083f309a1" width="110" height="110" data-path="images/python-logo.svg">
    ```bash theme={null}
    pip install 'mirage-ai[email]'
    ```

    ```python theme={null}
    from mirage.commands.cli.builtin.himalaya import HIMALAYA
    from mirage.core.email.config import EmailConfig

    config = EmailConfig(
        imap_host="imap.example.com",
        smtp_host="smtp.example.com",
        username="agent@example.com",
        password="app-password",
    )
    ws.register_cli("himalaya", HIMALAYA, config.model_dump())
    ```
  </Tab>

  <Tab title="TypeScript" icon="https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/images/typescript-logo.svg?fit=max&auto=format&n=F9Lv_nTaj6By6crk&q=85&s=63a620cb702b16103c53ea361a17504a" width="512" height="512" data-path="images/typescript-logo.svg">
    ```bash theme={null}
    pnpm add imapflow mailparser nodemailer
    ```

    ```typescript theme={null}
    import { HIMALAYA } from '@struktoai/mirage-node'

    const config = {
      imapHost: 'imap.example.com',
      smtpHost: 'smtp.example.com',
      username: 'agent@example.com',
      password: 'app-password',
    }
    ws.registerCli('himalaya', HIMALAYA, config)
    ```
  </Tab>
</Tabs>
