npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bitplanet/deva-genie

v0.0.3

Published

CLI bridge for Claude Code with Deva infrastructure

Readme

Deva AI

Code on the go — control AI coding agents from your mobile device.

Free. Open source. Code anywhere.

Installation

npm install -g @bitplanet/deva-genie

Usage

Claude (default)

genie

This will:

  1. Start a Claude Code session
  2. Display a QR code to connect from your mobile device
  3. Allow real-time session sharing between Claude Code and your mobile app

Gemini

genie gemini

Start a Gemini CLI session with remote control capabilities.

First time setup:

# Authenticate with Google
genie connect gemini

Commands

Main Commands

  • genie – Start Claude Code session (default)
  • genie gemini – Start Gemini CLI session
  • genie codex – Start Codex mode

Utility Commands

  • genie auth – Manage authentication
  • genie connect – Store AI vendor API keys in Deva cloud
  • genie notify – Send a push notification to your devices
  • genie daemon – Manage background service
  • genie doctor – System diagnostics & troubleshooting

Connect Subcommands

genie connect gemini     # Authenticate with Google for Gemini
genie connect claude     # Authenticate with Anthropic
genie connect codex      # Authenticate with OpenAI
genie connect status     # Show connection status for all vendors

Gemini Subcommands

genie gemini                      # Start Gemini session
genie gemini model set <model>    # Set default model
genie gemini model get            # Show current model
genie gemini project set <id>     # Set Google Cloud Project ID (for Workspace accounts)
genie gemini project get          # Show current Google Cloud Project ID

Available models: gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite

Options

Claude Options

  • -m, --model <model> - Claude model to use (default: sonnet)
  • -p, --permission-mode <mode> - Permission mode: auto, default, or plan
  • --claude-env KEY=VALUE - Set environment variable for Claude Code
  • --claude-arg ARG - Pass additional argument to Claude CLI

Global Options

  • -h, --help - Show help
  • -v, --version - Show version

Environment Variables

Deva Configuration

  • GENIE_RELAY_SERVER_URL - Custom relay server URL
  • GENIE_CONTENT_SERVER_URL - Custom backend server URL
  • GENIE_HOME_DIR - Custom home directory for Deva data (default: ~/.genie)
  • GENIE_DISABLE_CAFFEINATE - Disable macOS sleep prevention (set to true, 1, or yes)
  • GENIE_EXPERIMENTAL - Enable experimental features (set to true, 1, or yes)

Gemini Configuration

  • GEMINI_MODEL - Override default Gemini model
  • GOOGLE_CLOUD_PROJECT - Google Cloud Project ID (required for Workspace accounts)

OIDC Configuration

  • GENIE_OIDC_SCOPES - Custom OIDC scopes (space-separated)

Deva SSO Authentication

Deva CLI uses Deva SSO for authentication via OIDC with PKCE (Proof Key for Code Exchange).

Authentication Flow

  1. Run genie auth to start authentication
  2. A browser opens to the Deva SSO login page
  3. After login, the authorization code is exchanged for tokens
  4. Tokens are stored in ~/.genie/deva_credentials.json

OAuth Flow (PKCE)

┌─────────────┐     1. Generate code_verifier + code_challenge (S256)
│  Deva CLI  │────────────────────────────────────────────────────────►
│             │
│             │     2. Open browser: /sso/authorize?code_challenge=...
│             │────────────────────────────────────────────────────────►
│             │                                                    ┌──────────────┐
│             │     3. User authenticates                          │   Deva SSO   │
│             │◄───────────────────────────────────────────────────│              │
│             │     4. Receive authorization_code                  └──────────────┘
│             │
│             │     5. POST /oidc/token (code + code_verifier)
│             │────────────────────────────────────────────────────────►
│             │                                                    ┌──────────────┐
│             │     6. Receive tokens (id_token, access_token,     │Content Server│
│             │◄───────────────────────────────────────────────────│              │
└─────────────┘        refresh_token)                              └──────────────┘

OIDC Scopes

Default scopes requested during authentication:

| Scope | Description | |-------|-------------| | OPENID | OpenID Connect authentication | | USER:READ | Read user profile | | PERSONA:READ | Read persona information | | PERSONA:PUBLIC_READ | Read public persona data | | GENIE_MACHINE:READ | Read machine information | | GENIE_MACHINE:CREATE | Register new machines | | GENIE_MACHINE:UPDATE | Update machine status | | GENIE_MACHINE:DELETE | Remove machines | | GENIE_SESSION:READ | Read session data | | GENIE_SESSION:CREATE | Create new sessions | | GENIE_SESSION:UPDATE | Update session state | | GENIE_SESSION:DELETE | Delete sessions | | GENIE_SESSION_MESSAGE:READ | Read session messages | | GENIE_SESSION_MESSAGE:CREATE | Send messages | | GENIE_SESSION_MESSAGE:UPDATE | Update messages | | GENIE_SESSION_MESSAGE:DELETE | Delete messages |

Token Storage

Credentials are stored in ~/.genie/deva_credentials.json:

Tokens are automatically refreshed when expired.

Gemini Authentication

Personal Google Account

Personal Gmail accounts work out of the box:

genie connect gemini
genie gemini

Google Workspace Account

Google Workspace (organization) accounts require a Google Cloud Project:

  1. Create a project in Google Cloud Console
  2. Enable the Gemini API
  3. Set the project ID:
genie gemini project set your-project-id

Or use environment variable:

GOOGLE_CLOUD_PROJECT=your-project-id genie gemini

Guide: https://goo.gle/gemini-cli-auth-docs#workspace-gca

Contributing

Interested in contributing? See CONTRIBUTING.md for development setup and guidelines.

Requirements

  • Node.js >= 20.0.0

For Claude

  • Claude CLI installed & logged in (claude command available in PATH)

For Gemini

  • Gemini CLI installed (npm install -g @google/gemini-cli)
  • Google account authenticated via genie connect gemini

License

MIT