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

@team-falkor/game-launcher

v0.7.4

Published

Cross-platform Node.js utility package for managing game processes

Downloads

13

Readme

Game Launcher

A powerful and flexible Node.js library for launching and managing game processes across different platforms

npm version License: MIT TypeScript Platform Support


✨ Features

  • 🖥️ Cross-Platform Support - Works seamlessly on Windows, macOS, and Linux
  • 🎮 Process Management - Launch, monitor, and control game processes with precision
  • Event-Driven Architecture - Real-time events for complete game lifecycle tracking
  • 🎯 Steam Integration - Built-in support for Steam games and platform detection
  • 🍷 Proton Integration - Native support for running Windows games on Linux via Proton
  • ⚙️ Configuration Management - Flexible, environment-aware configuration system
  • 📘 TypeScript Support - Full TypeScript definitions and IntelliSense support
  • 🛡️ Error Handling - Robust error handling and automatic recovery mechanisms
  • 📊 Resource Monitoring - Track memory, CPU usage, and system resources
  • 🔄 Hot Reloading - Dynamic configuration updates without restarts
  • 🎨 Extensible Architecture - Plugin-friendly design for custom implementations

🚀 Quick Start

Installation

# Using npm
npm install @team-falkor/game-launcher

# Using yarn
yarn add @team-falkor/game-launcher

# Using bun
bun add @team-falkor/game-launcher

Basic Usage

import { GameLauncher } from '@team-falkor/game-launcher';

// Create a new launcher instance
const launcher = new GameLauncher({
  verbose: true
});

// Launch a game
const gameId = await launcher.launchGame({
  gameId: 'my-awesome-game',
  executable: '/path/to/game.exe',
  args: ['--windowed', '--resolution=1920x1080']
});

console.log(`🎮 Game launched with ID: ${gameId}`);

// Set up event listeners
launcher.on('launched', (event) => {
  console.log(`✅ Game ${event.gameId} started successfully`);
});

launcher.on('closed', (event) => {
  console.log(`🔴 Game ${event.gameId} closed (exit code: ${event.exitCode})`);
});

launcher.on('error', (event) => {
  console.error(`❌ Game ${event.gameId} encountered an error:`, event.error);
});

Advanced Example

import { GameLauncher } from '@team-falkor/game-launcher';

const launcher = new GameLauncher({
  verbose: true,
  maxConcurrentGames: 3
});

// Launch multiple games with different configurations
const games = [
  {
    gameId: 'steam-game',
    executable: 'steam://rungameid/123456',
    timeout: 30000
  },
  {
    gameId: 'local-game',
    executable: './games/local-game.exe',
    args: ['--debug'],
    cwd: './games',
    env: { GAME_MODE: 'development' }
  }
];

for (const game of games) {
  try {
    const gameId = await launcher.launchGame(game);
    console.log(`🚀 Launched ${game.gameId}: ${gameId}`);
  } catch (error) {
    console.error(`💥 Failed to launch ${game.gameId}:`, error.message);
  }
}

// Monitor running games
setInterval(() => {
  const runningGames = launcher.getRunningGames();
  console.log(`📊 Currently running: ${runningGames.length} games`);
}, 5000);

📚 Documentation

Explore our comprehensive documentation for detailed guides, examples, and API references:

🎯 Getting Started

🔧 API Reference

💡 Examples

🎯 Use Cases

🎮 Game Launchers

Build custom game launcher applications with modern UI frameworks like Electron, Tauri, or web-based interfaces.

📚 Game Management

Organize and launch extensive game collections with metadata, categories, and search functionality.

🛠️ Development Tools

Create development and testing tools for game developers, including automated testing and deployment pipelines.

🤖 Automation

Automate game testing, performance benchmarking, and continuous integration workflows.

📊 Monitoring & Analytics

Track game performance, usage statistics, and system resource consumption for optimization.

🔗 Integration

Integrate games into larger applications, Discord bots, streaming platforms, or content management systems.

🖥️ Platform Support

| Platform | Status | Features | Notes | |----------|--------|----------|-------| | Windows | ✅ Full Support | Native process management, Registry integration, UAC handling | Supports .exe, .bat, .cmd files | | macOS | ✅ Full Support | App bundle support, Permission handling, Spotlight integration | Supports .app bundles, .command files | | Linux | ✅ Full Support | AppImage support, Desktop entries, Display server detection | Supports AppImage, .desktop files |

Platform-Specific Features

  • Windows: Registry game detection, Windows Store app support, UAC elevation
  • macOS: Info.plist parsing, Gatekeeper compatibility, Accessibility permissions
  • Linux: Desktop file parsing, Wayland/X11 detection, Flatpak/Snap support, Proton integration for Windows games

🤝 Contributing

We actively welcome and encourage contributions from the community! Whether you're a seasoned developer or just getting started, there are many ways to help improve the Game Launcher library.

🌟 Ways to Contribute

🐛 Bug Reports & Feature Requests

  • Use our issue templates for consistent reporting
  • Provide detailed reproduction steps and system information
  • Include logs, error messages, and expected vs. actual behavior
  • Search existing issues before creating new ones

💻 Code Contributions

  • Bug fixes - Help resolve open issues
  • New features - Implement requested functionality
  • Performance improvements - Optimize existing code
  • Platform support - Enhance cross-platform compatibility
  • Test coverage - Add unit, integration, or end-to-end tests

📝 Documentation

  • Improve existing documentation clarity
  • Add new examples and use cases
  • Create tutorials and guides
  • Fix typos and formatting issues
  • Translate documentation to other languages

🎨 Community Support

  • Help answer questions in discussions
  • Review pull requests
  • Share your projects using the library
  • Provide feedback on proposed changes

🚀 Getting Started

First-time Contributors

Look for issues labeled good first issue or help wanted - these are perfect starting points!

Development Setup

# Fork the repository on GitHub, then clone your fork
git clone https://github.com/YOUR-USERNAME/game-launcher.git
cd game-launcher

# Install dependencies
npm install

# Create a new branch for your feature/fix
git checkout -b feature/your-feature-name

# Make your changes and test them
npm test
npm run build

# Commit your changes with a descriptive message
git commit -m "feat: add support for new game platform"

# Push to your fork and create a pull request
git push origin feature/your-feature-name

📋 Contribution Guidelines

Code Standards

  • Follow the existing code style and conventions
  • Write clear, self-documenting code with appropriate comments
  • Ensure all tests pass and add new tests for your changes
  • Update documentation for any API changes

Pull Request Process

  1. Fork the repository and create a feature branch
  2. Make your changes with clear, atomic commits
  3. Test your changes thoroughly across platforms
  4. Update documentation and examples if needed
  5. Submit a pull request with a clear description
  6. Respond to feedback and iterate as needed

Commit Message Format

We use Conventional Commits:

type(scope): description

feat(launcher): add Steam game detection
fix(process): resolve memory leak in game monitoring
docs(examples): add cross-platform configuration guide

🎯 Priority Areas

We're especially looking for help with:

  • 🖥️ Platform-specific optimizations (Windows, macOS, Linux)
  • 🎮 Game platform integrations (Epic Games, GOG, etc.)
  • 🧪 Test coverage improvements
  • 📚 Documentation and examples
  • 🌐 Internationalization support
  • ♿ Accessibility features

💬 Questions?

Don't hesitate to ask! We're here to help:

  • 💭 Start a Discussion for general questions
  • 🐛 Open an Issue for bugs or feature requests
  • 📧 Reach out to maintainers for guidance on larger contributions

Thank you for considering contributing to Game Launcher! Every contribution, no matter how small, helps make this library better for everyone. 🙏

📄 License

This project is licensed under the BSD 3-Clause License - see the LICENSE file for details.

📞 Support & Community

💬 Get Help

🔗 Links


Built with ❤️ for the gaming community

Empowering developers to create amazing game management experiences