Skip to main content
skill CX Codex

cross-platform-compatibility — Claude Code skill: how to install

Guides the agent to handle OS differences without breaking builds. It enforces safe path resolution, line endings, and dependency handling on Windows, macOS, and Linux.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a claude-code
Open on GitHub

What cross-platform-compatibility does

This skill guides coding agents through cross-OS quirks. It replaces raw slash concatenations with path.join() or path.resolve(), and resolves user paths via os.homedir().

The reference guides cover runtime OS detection, UTF-8 normalization, and os.EOL handling. For platform-specific packages, the prompt instructs the model to rely on optionalDependencies and prepare explicit fallbacks.

Hardcoding POSIX signals or assuming case-sensitive files breaks Windows setups. This reference reminds the agent to verify behavior across multi-platform CI pipelines early.

What it helps with

  • resolve file paths safely across Windows and POSIX systems
  • handle operating system line endings using os.EOL
  • isolate platform-specific packages inside optionalDependencies
  • escape shell arguments consistently across different command interpreters

Example prompts for the agent

  • Audit this Node.js utility and replace hardcoded directory separators with path.join().
  • Refactor our CLI script so it executes properly on both Windows CMD and Linux bash.
  • Set up runtime OS detection and fallbacks for platform-dependent features.

How to install cross-platform-compatibility

1Skills CLI (Vercel)

npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a claude-code

2Manually: put the files in place

~/.claude/skills/cross-platform-compatibility/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/cross-platform-compatibility/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about cross-platform-compatibility

How do I install cross-platform-compatibility in Claude Code?

Run npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a claude-code. You can also place the skill file directly at ~/.claude/skills/cross-platform-compatibility/SKILL.md.

What does the cross-platform-compatibility skill do?

It injects guidelines for writing software that runs across Windows, macOS, and Linux, focusing on path normalization, environment variables, and process execution.

How does the skill handle platform-specific packages?

It directs the AI to configure native packages as optionalDependencies and implement runtime fallbacks when specific APIs are missing.

Source text

SKILL.md · MIT
---
name: cross-platform-compatibility
description: >
  Handle cross-platform compatibility including file paths, environment
  detection, platform-specific dependencies, and testing across Windows, macOS,
  and Linux. Use when dealing with platform-specific code or OS compatibility.
---

# Cross-Platform Compatibility

## Table of Contents

- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)

## Overview

Comprehensive guide to writing code that works seamlessly across Windows, macOS, and Linux. Covers file path handling, environment detection, platform-specific features, and testing strategies.

## When to Use

- Building applications for multiple operating systems
- Handling file system operations
- Managing platform-specific dependencies
- Detecting operating system and architecture
- Working with environment variables
- Building cross-platform CLI tools
- Dealing with line endings and character encodings
- Managing platform-specific build processes

## Quick Start

Minimal working example:

```typescript
// ❌ BAD: Hardcoded paths with platform-specific separators
const configPath = "C:\\Users\\user\\config.json"; // Windows only
const dataPath = "/home/user/data.txt"; // Unix only

// ✅ GOOD: Use path module
import path from "path";
import os from "os";

// Platform-independent path construction
const configPath = path.join(os.homedir(), "config", "app.json");
const dataPath = path.join(process.cwd(), "data", "users.txt");

// Resolve relative paths
const absolutePath = path.resolve("./config/settings.json");

// Get path components
const dirname = path.dirname("/path/to/file.txt"); // '/path/to'
const basename = path.basename("/path/to/file.txt"); // 'file.txt'
const extname = path.extname("/path/to/file.txt"); // '.txt'

// Normalize paths (handle .. and .)
const normalized = path.normalize("/path/to/../file.txt"); // '/path/file.txt'
```

## Reference Guides

Detailed implementations in the `references/` directory:

| Guide | Contents |
|---|---|
| [File Path Handling](references/file-path-handling.md) | File Path Handling |
| [Platform Detection](references/platform-detection.md) | Platform Detection |
| [Line Endings](references/line-endings.md) | Line Endings |
| [Environment Variables](references/environment-variables.md) | Environment Variables |
| [Shell Commands](references/shell-commands.md) | Shell Commands |
| [File Permissions](references/file-permissions.md) | File Permissions |
| [Process Management](references/process-management.md) | Process Management |
| [Platform-Specific Dependencies](references/platform-specific-dependencies.md) | Platform-Specific Dependencies |
| [Testing Across Platforms](references/testing-across-platforms.md) | Testing Across Platforms |
| [Character Encoding](references/character-encoding.md) | Character Encoding |
| [Build Configuration](references/build-configuration.md) | Build Configuration |

## Best Practices

### ✅ DO

- Use path.join() or path.resolve() for paths
- Use os.EOL for line endings
- Detect platform at runtime when needed
- Test on all target platforms
- Use optionalDependencies for platform-specific modules
- Handle file permissions gracefully
- Use shell escaping for user input
- Normalize line endings in text files
- Use UTF-8 encoding by default
- Document platform-specific behavior
- Provide fallbacks for platform-specific features
- Use CI/CD to test on multiple platforms

### ❌ DON'T

- Hardcode file paths with backslashes or forward slashes
- Assume Unix-only features (signals, permissions, symlinks)
- Ignore Windows-specific quirks (drive letters, UNC paths)
- Use platform-specific commands without fallbacks
- Assume case-sensitive file systems
- Forget about different line endings
- Use platform-specific APIs without checking
- Hardcode environment variable access patterns
- Ignore character encoding issues

© aj-geddes · MIT · aj-geddes/useful-ai-prompts

Similar skills

All skills for Backend and APIs →

From the same set149

uptime-monitoring A skill that walks your coding agent through uptime checks, a public status page and incident tracking. Useful when you need to know which dependency actually broke. CX Codex +1 484installs api-response-optimization A coding-agent skill that trims payloads, adds caching and compression, and gives you a checklist for slow API endpoints. CX Codex +1 484installs background-job-processing A skill for wiring up background job processing: task queues, workers, scheduling and retries. Useful when emails, reports or large exports should not block the request path. CX Codex +1 483installs accessibility-compliance This skill guides accessibility work for WCAG 2.1/2.2, keyboard navigation, screen readers and a11y checks in web interfaces. CX Codex +1 482installs git-workflow-strategy A skill that helps your agent pick a branching model and walk a feature, release or hotfix through the right steps. Useful when the team has no shared branch rules. CX Codex +1 482installs zero-trust-architecture Guides AI coding agents to implement Zero Trust security with identity verification and microsegmentation. Useful for cloud-native apps. CX Codex +1 482installs web-performance-optimization A skill for speeding up web apps: code splitting, lazy loading, caching, compression and monitoring. Useful when pages load slowly. CX Codex +1 482installs frontend-state-management A skill that guides your agent through frontend state management: Redux, MobX, Zustand or the Context API. CX Codex +1 480installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor