New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

csharpierd

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

csharpierd

A persistent CSharpier formatting daemon with automatic server management and idle timeout

latest
npmnpm
Version
1.0.5
Version published
Maintainers
1
Created
Source

csharpierd

A persistent CSharpier formatting daemon with automatic server management and idle timeout.

Features

  • Starts CSharpier server in background on first use
  • Reuses existing server for subsequent formatting requests
  • Automatically shuts down after 1 hour of inactivity
  • Thread-safe with file locking mechanism
  • Auto-recovery if server crashes

Requirements

  • Bun runtime (>= 1.0.0)
  • CSharpier installed globally or locally

Installation

Global Installation

# Bun
bun install -g csharpierd

# npm
npm install -g csharpierd

# Yarn
yarn global add csharpierd

# pnpm
pnpm install -g csharpierd

Local Development

bun install

Usage

Command Line Options

csharpierd <filename> < input.cs    # Format C# code from stdin
csharpierd --status                 # Show server status
csharpierd --stop                   # Stop the background server
csharpierd --help                   # Show help message

As Global Command

After global installation:

# Format a C# file
csharpierd Program.cs < Program.cs

# Or using cat
cat MyFile.cs | csharpierd MyFile.cs

# Output formatted code to a new file
csharpierd MyFile.cs < MyFile.cs > MyFile.formatted.cs

# Check server status
csharpierd --status

# Stop the background server
csharpierd --stop

# Show help
csharpierd --help

Local Development

# Format a file
bun index.ts Program.cs < Program.cs

# Check server status
bun index.ts --status

# Stop the server
bun index.ts --stop

# Show help
bun index.ts --help

Server Management

Check Server Status

The --status flag shows detailed information about the server including:

  • Running state (RUNNING, STARTING, STOPPED, or NOT RUNNING)
  • Process ID and port
  • Last access time
  • Idle time with color-coded warnings (green < 75% timeout, yellow >= 75%, red >= 100%)
  • Configuration details
csharpierd --status

Stopping the Server

The server will automatically shut down after 1 hour of inactivity, but you can manually stop it:

csharpierd --stop

Building

You can compile the TypeScript code to a standalone binary:

bun run build

This creates a csharpierd binary in the current directory that can be distributed without requiring Bun to be installed. The binary is self-contained and includes all dependencies.

# Run the compiled binary
./csharpierd Program.cs < Program.cs

Editor Integration

Neovim with conform.nvim

conform.nvim is a popular formatter plugin for Neovim. Here's how to configure it to use csharpierd:

Basic Configuration

require("conform").setup({
  formatters_by_ft = {
    cs = { "csharpierd" },
  },
  formatters = {
    csharpierd = {
      command = "csharpierd",
      args = { "$RELATIVE_FILEPATH" },
      stdin = true,
    },
  },
})

Benefits of using csharpierd with conform.nvim

  • Fast formatting: Reuses the CSharpier server process, avoiding startup overhead
  • Automatic server management: Server starts on first use and stops after 1 hour of inactivity

How It Works

  • First Call: Starts dotnet csharpier server --server-port 78912 in the background
  • Subsequent Calls: Reuses the existing server process
  • Idle Timeout: Server automatically shuts down after 1 hour of inactivity
  • State Management: Server state (PID, port, last access time) stored in /tmp/csharpierd-state.json
  • Concurrency: Lock file prevents race conditions when multiple instances run simultaneously

Server Details

  • Port: 78912 (hardcoded)
  • State File: /tmp/csharpierd-state.json
  • Lock File: /tmp/csharpierd.lock
  • Idle Timeout: 1 hour (3600000ms)

Publishing

To publish this package to npm:

bun publish

License

MIT

Keywords

csharpier

FAQs

Package last updated on 25 Oct 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts