Extension Icon

Glean Search

Search your company's knowledge base via Glean
Overview

Glean Search

MIT Raycast TypeScript Vitest

Search your company's knowledge base via Glean directly from Raycast.

Quick links: Quick Start · Features · Commands · Architecture · Changelog


Quick Start

Note: The extension is pending Raycast Store approval. For now, install from source:

git clone https://github.com/faizhasim/glean-search.git
cd glean-search
npm install && npm run build

Then open Search Glean in Raycast (add via raycast://extensions/faizhasim/glean-search/search-glean or use Import Extension in Raycast).

Once approved, install from the Raycast Store.

  1. Sign in — the first time, you'll be asked for your work email to look up your Glean instance. A browser opens for OAuth authentication. After that, you're signed in automatically on future launches.

Note: Your work email is used once to discover your Glean instance. The server URL is cached in ~/.glean/config.json — no configuration needed on subsequent runs.


Features

FeatureDescription
Search across connected appsQuery indexed content from Glean's 100+ connectors (Google Workspace, Slack, Jira, GitHub, Confluence, and more)
OAuth authenticationBrowser-based OAuth flow. No tokens to configure.
Auto-downloads glean CLIThe glean CLI binary is downloaded from GitHub Releases on first launch with SHA-256 verification. No manual installation needed.
No configuration neededgleanHost and gleanCliPath preferences have been removed. Instance discovery happens via your email — the extension looks up the server URL automatically.
Open in browserPress Enter to open a result in your default browser.
Copy URLPress Cmd+C to copy a result URL to your clipboard.
Result previewsEach result shows title, datasource, and a snippet preview.

Commands

CommandDescription
Search GleanSearch your company's knowledge base. Type a query, browse results, open or copy URLs.

Architecture

flowchart LR
    subgraph Raycast["Raycast Extension"]
        A["Search Glean UI"]
        B["useGlean hook"]
        C["CLI manager\n(auto-download)"]
        D["Auth manager\n(OAuth)"]
        E["Search executor"]
    end

    subgraph GleanCLI["glean CLI (auto-downloaded)"]
        F["glean auth login"]
        G["glean search"]
        H["glean auth status"]
    end

    subgraph External["External"]
        I["GitHub Releases\nglean-cli"]
        J["Glean API"]
        K["Browser\n(OAuth)"]
    end

    A --> B
    B --> C
    B --> D
    B --> E
    C --> I
    D --> F --> K
    D --> H
    E --> G --> J
LayerStack
RuntimeRaycast — native macOS extension
LanguageTypeScript
UI@raycast/api — List, Form, Actions
CLIglean-cli — auto-downloaded, SHA-256 verified
AuthOAuth via glean auth login — email-based instance discovery, browser flow
TestingVitest — CLI, auth, and integration test suites

Project Structure

src/
├── search-glean.tsx       # Command entry point — UI, search, auth orchestration
├── lib/
│   ├── cli.ts             # glean CLI auto-download, cache, discovery
│   ├── cli.test.ts        # CLI module tests
│   ├── auth.ts            # OAuth sign-in, auth status checking
│   ├── auth.test.ts       # Auth module tests
│   ├── glean.ts           # useGlean hook — CLI+auth+search orchestration
│   └── types.ts           # Shared TypeScript types

CLI Management

The extension downloads the glean CLI binary automatically from GitHub Releases on first launch. The binary is cached and verified via SHA-256 checksums.

If you prefer to manage the CLI yourself:

brew install gleanwork/tap/glean-cli

The extension discovers a system-installed binary before falling back to auto-download.


Development

# Install dependencies
npm install

# Run tests
npm test

# Run with live reload
npm run dev

# Lint
npm run lint

License

MIT

Not affiliated with Glean. Glean is a trademark of Glean Technologies, Inc.