open-index/open-npm huggingface dataset:
npm package: @modemdev/glance-claude
Description: glance.sh plugin package for Claude Code
Latest version: 0.1.0

# glance.sh plugin for Claude Code

[Claude Code](https://github.com/anthropics/claude-code) plugin that adds glance.sh screenshot tools via MCP.

## What it does

Adds two MCP tools:

- **`glance`** — creates/reuses a live session and returns a URL like `https://glance.sh/s/<id>`
- **`glance_wait`** — waits for the next pasted image and returns `Screenshot: https://glance.sh/<token>.<ext>`

The server keeps a background SSE listener alive, reconnects automatically, and refreshes sessions before they expire.

## Install

Recommended (npm-backed marketplace plugin):

```text
/plugin marketplace add modem-dev/glance-agent-plugins
/plugin install glance-claude@glance-agent-plugins
```

This plugin is distributed as `@modemdev/glance-claude` and installed through Claude Code's plugin marketplace flow.

### Local development (plugin dir)

From this repo root:

```bash
claude --plugin-dir ./agent-plugins/claude
```

Or from inside `agent-plugins/`:

```bash
claude --plugin-dir ./claude
```

## Verify

1. Run `/mcp` and confirm a `glance` server is connected.
2. Ask Claude to call the `glance` tool.
3. Open the returned `https://glance.sh/s/<id>` URL and paste an image.
4. Ask Claude to call `glance_wait`.
5. Confirm Claude receives `Screenshot: <url>`.

## Update / remove

- Update: `/plugin update glance-claude`
- Remove: `/plugin uninstall glance-claude`

If you have multiple plugins with the same name from different marketplaces, use the fully qualified form (`glance-claude@glance-agent-plugins`).

## Publishing (maintainers)

Releases are automated via GitHub Actions.

Prerequisite: configure `NPM_TOKEN` in the `glance-agent-plugins` repository with publish access to `@modemdev/glance-claude`.

1. Bump `version` in both:
   - `claude/package.json`
   - `claude/.claude-plugin/plugin.json`
2. Commit and push to `main`.
3. Create and push a matching tag:

```bash
git tag claude-v0.1.0
git push origin claude-v0.1.0
```

The `Release claude package` workflow validates tag/version alignment, checks for already-published versions, runs `npm pack --dry-run`, and publishes with npm provenance.

## How it works

```text
Claude calls glance
  └─▶ MCP server POST /api/session
  └─▶ returns session URL

Claude calls glance_wait
  └─▶ waits for SSE image event

User pastes image at /s/<id>
  └─▶ glance.sh emits image event
  └─▶ tool returns Screenshot: <url>
```

## Requirements

- Claude Code with plugin support
- Node.js runtime available to Claude Code (for stdio MCP server)

## Configuration

Optional environment variable:

- `GLANCE_BASE_URL` (default: `https://glance.sh`)
npm package: @modemdev/glance-codex
Description: glance.sh MCP server package for Codex
Latest version: 0.1.1

# glance.sh plugin for Codex

[Codex CLI](https://developers.openai.com/codex) integration that adds glance.sh screenshot tools via MCP.

## What it does

Adds two MCP tools:

- **`glance`** — creates/reuses a live session and returns a URL like `https://glance.sh/s/<id>`
- **`glance_wait`** — waits for the next pasted image and returns `Screenshot: https://glance.sh/<token>.<ext>`

The server keeps a background SSE listener alive, reconnects automatically, and refreshes sessions before they expire.

## Install

Recommended (npm package):

```bash
codex mcp add glance -- npx -y @modemdev/glance-codex
```

Optional: pin a specific version:

```bash
codex mcp add glance -- npx -y @modemdev/glance-codex@0.1.1
```

Local development / manual install:

```bash
codex mcp add glance -- node /absolute/path/to/glance-agent-plugins/codex/servers/glance-mcp.js
```

## Verify

1. Confirm the MCP server is configured:

```bash
codex mcp list
codex mcp get glance --json
```

2. Ask Codex to call `glance`.
3. Open the returned `https://glance.sh/s/<id>` URL and paste an image.
4. Ask Codex to call `glance_wait`.
5. Confirm Codex receives `Screenshot: <url>`.

## Update / remove

Update:

```bash
codex mcp remove glance
codex mcp add glance -- npx -y @modemdev/glance-codex
```

Remove:

```bash
codex mcp remove glance
```

## Publishing (maintainers)

Releases are automated via GitHub Actions.

Prerequisite: configure `NPM_TOKEN` in the `glance-agent-plugins` repository with publish access to `@modemdev/glance-codex`.

1. Bump `version` in `codex/package.json`.
2. Commit and push to `main`.
3. Create and push a matching tag:

```bash
git tag codex-v0.1.1
git push origin codex-v0.1.1
```

The `Release codex package` workflow validates tag/version alignment, checks for already-published versions, runs `npm pack --dry-run`, and publishes with npm provenance.

## How it works

```text
Codex calls glance
  └─▶ MCP server POST /api/session
  └─▶ returns session URL

Codex calls glance_wait
  └─▶ waits for SSE image event

User pastes image at /s/<id>
  └─▶ glance.sh emits image event
  └─▶ tool returns Screenshot: <url>
```

## Requirements

- Codex CLI with MCP support
- Node.js runtime available to launch the stdio MCP server

## Configuration

Optional environment variable:

- `GLANCE_BASE_URL` (default: `https://glance.sh`)
npm package: @modemdev/glance-pi
Description: glance.sh extension package for pi
Latest version: 0.1.0

# glance.sh extension for pi

[Pi](https://github.com/mariozechner/pi) extension that lets your agent request screenshots from you via [glance.sh](https://glance.sh).

## What it does

Maintains a **persistent background session** on glance.sh. Paste an image anytime — the agent receives it instantly.

- **Background listener** — starts when pi launches, reconnects automatically, refreshes sessions before they expire.
- **`glance` tool** — the LLM calls it when it needs to see something visual. Surfaces the session URL and waits for the next paste.
- **`/glance` command** — type it to see the current session URL.
- **Multiple images** — paste as many images as you want. Each one is injected into the conversation as `Screenshot: <url>`.

## Install

Recommended (npm package):

```bash
pi install npm:@modemdev/glance-pi
```

If you are working from a local checkout instead:

```bash
# from this directory (agent-plugins/pi)
pi install .

# from the main repo root
pi install ./agent-plugins/pi
```

Then restart pi or run `/reload`.

## Verify

Run:

```text
/glance
```

You should see a session URL like `https://glance.sh/s/<id>`.

## Update / remove

```bash
pi update
pi remove npm:@modemdev/glance-pi
```

For a local path install, remove that path from your pi settings (or run `pi remove` with the same path you installed).

## Publishing (maintainers)

Releases are automated via GitHub Actions.

Prerequisite: configure `NPM_TOKEN` in the `glance-agent-plugins` repository with publish access to `@modemdev/glance-pi`.

1. Bump `version` in `pi/package.json`.
2. Commit and push to `main`.
3. Create and push a matching tag:

```bash
git tag pi-v0.1.0
git push origin pi-v0.1.0
```

The `Release pi package` workflow validates the tag/version match and publishes with npm provenance.
You can also run the workflow manually in dry-run mode from Actions.

## Manual install (legacy)

If you prefer manual file management, symlink or copy `glance.ts` into your pi extensions directory:

```bash
mkdir -p ~/.pi/agent/extensions
ln -s "$(pwd)/glance.ts" ~/.pi/agent/extensions/glance.ts
# or:
cp glance.ts ~/.pi/agent/extensions/glance.ts
```

## How it works

```text
pi starts
  └─▶ create session on glance.sh
  └─▶ connect SSE (background, auto-reconnect)

user pastes image at /s/<id>
  └─▶ SSE emits "image" event
  └─▶ extension injects "Screenshot: <url>" into conversation

session expires (~10 min)
  └─▶ extension creates new session, reconnects
```

The `glance` tool reuses the existing background session — it just surfaces the URL and waits for the next image rather than creating a new session each time.

## Requirements

- [pi](https://github.com/mariozechner/pi) coding agent
- Node.js with global `fetch` (Node 18+)

## Configuration

No API keys required — sessions are anonymous and ephemeral (10-minute TTL).

The extension connects to `https://glance.sh` by default. The SSE connection is held for ~5 minutes per cycle, with automatic reconnection.
npm package: @modera/i18next-extract-webpack-plugin
Description: i18next extract webpack plugin
Author: Sergei Vizel
Latest version: 0.1.1

# @modera/i18next-extract-webpack-plugin

This plugin will traverse your code in order to find [i18next](https://www.npmjs.com/package/babel-plugin-i18next-extract) translation keys.

## Installation

```sh
// with npm
npm install --save-dev @modera/i18next-extract-webpack-plugin

// with yarn
yarn add --dev @modera/i18next-extract-webpack-plugin
```

## Usage

```js
// webpack.config.js
const I18nextExtractWebpackPlugin = require('@modera/i18next-extract-webpack-plugin');

module.exports = {
    //...
    plugins: [
        new I18nextExtractWebpackPlugin({
            enabled: true,
            outputPath: 'translations',
            extractOptions: {
                defaultNS: 'messages',
            },
        })
    ],
}
```
npm package: @modera/material-ui
Description: Material UI
Author: Sergei Vizel
Latest version: 0.2.3

# @modera/material-ui

Material UI is available as an [npm package](https://www.npmjs.com/package/@mui/material).

## Installation

```sh
// with npm
npm install @modera/material-ui

// with yarn
yarn add @modera/material-ui
```

## Usage

```jsx
import { addTheme, ThemeProvider } from '@modera/material-ui/themes';
import { options as themeOptions } from '@modera/material-ui/themes/default';
import { createTheme } from '@mui/material/styles';
import { deepmerge } from '@mui/utils';

addTheme('app', createTheme(deepmerge(themeOptions, {
    // custom options
})));

export default function App () {
    return (
        <ThemeProvider defaultTheme={'app'}>
            {/* ... */}
        </ThemeProvider>
    );
}
```

> **NB!** For more info, see: [Material UI Theming](https://mui.com/material-ui/customization/theming)
npm package: @modera/react-js-plugin
Description: ReactJS plugin
Author: Sergei Vizel
Latest version: 0.1.0

# @modera/react-js-plugin

A plugin system for ReactJS

## Plugin structure

```js
(function (window) {
    window.AppPluginRegistry = window.AppPluginRegistry || {};
    window.AppPluginRegistry['PLUGIN-NAME'] = {
        initialize: function (plugin, pluginManager) {
            plugin.state = plugin.has(pluginManager.owner) ? 'active' : 'hibernated';
        },
        contributions: {
            'react-app': {
                menu: {
                    renderMenuItem(key) {
                        return (
                            <li key={key}>Settings</li>
                        );
                    },
                },
            },
        },
    };

})(window || {});
```

## Usage

```js
import createPluginManager from '@modera/react-js-plugin';

const pluginManager = createPluginManager('react-app', window?.AppPluginRegistry);

export default function Menu() {
    const menuItems = pluginManager.collect('react-app.menu.renderMenuItem')
        .map((fn, index) => fn(index))
    ;

    return (
        <ul>
            <li>Profile<li>
            {menuItems}
        </ul>
    );
}
```
npm package: @moderation-api/node
Description: Automatically detect personal information like email addresses and phone numbers - even if the user is trying to bypass detection
Author: Moderation API
Latest version: 0.0.3
Deprecated: Please use https://www.npmjs.com/package/@moderation-api/sdk

# Moderation API

**This is work in progress not ready for production.**

Javascript bindings for the [Moderation API](https://moderationapi.com).

Use the Moderation API to analyze text for profanity, sentiment, language and more - or detect, hide, and extract data entities like emails, phone numbers, addresses and more.

See more at [Moderation API](https://moderationapi.com).
npm package: @modern-dev/daylight
Description: Daylight - is a tiny JavaScript library for basic sun/moon position/times/phase calculations.
Author: Bohdan Shtepan
Latest version: 0.1.0

Daylight
========

[![Build Status](https://travis-ci.org/modern-dev/daylight.svg?branch=master)](https://travis-ci.org/modern-dev/daylight)
[![codecov](https://codecov.io/gh/modern-dev/daylight/branch/master/graph/badge.svg)](https://codecov.io/gh/modern-dev/daylight)
![npm](https://img.shields.io/npm/v/@modern-dev/daylight)
![NPM](https://img.shields.io/npm/l/@modern-dev/daylight)

Daylight - is a tiny JavaScript library for basic sun/moon position/times/phase calculations.

```shell script
$ npm install -save @modern-dev/daylight
```

## :clipboard: Usage

```js
import { sun, moon } from '@modern-dev/daylight';

const sunPosition = sun.getPosition(new Date(), 90.0, 45.0);
console.log('Sun\'s altitude at the South Pole is ', sunPosition.altitude);

const moonPahse = moon.getPhase(new Date());
console.log('Today\'s moon phase is ', moonPhase.phase);
```

## :mortar_board: API Reference
*Will be added soon.*

## :green_book: License

[Licensed under the MIT license.](https://github.com/modern-dev/daylight/blob/master/LICENSE)

Copyright (c) 2020 Bohdan Shtepan

---

> [modern-dev.com](http://modern-dev.com) &nbsp;&middot;&nbsp;
> GitHub [@virtyaluk](https://github.com/virtyaluk) &nbsp;&middot;&nbsp;
> Twitter [@virtyaluk](https://twitter.com/virtyaluk)