# Unit Converter

> Convert between physical units (length, mass, temperature, time, etc.). Use for scientific calculations, data transformation, or unit standardization.

- Skill: `majiayu000/unit-converter` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/unit-converter`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/unit-converter/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/unit-converter

---


# Unit Converter

Convert between units across multiple physical dimensions.

## Features

- **Multiple Categories**: Length, mass, temperature, time, volume, etc.
- **Compound Units**: Speed, density, pressure
- **Precision Control**: Configurable decimal places
- **Batch Conversion**: Convert lists of values
- **Formula Display**: Show conversion formulas

## Quick Start

```python
from unit_converter import UnitConverter

converter = UnitConverter()

# Simple conversion
result = converter.convert(100, "km", "miles")
print(f"100 km = {result:.2f} miles")

# With full details
result = converter.convert_with_details(72, "fahrenheit", "celsius")
print(result)
```

## CLI Usage

```bash
# Basic conversion
python unit_converter.py 100 km miles

# Temperature
python unit_converter.py 98.6 fahrenheit celsius

# With precision
python unit_converter.py 1.5 kg lbs --precision 4

# List supported units
python unit_converter.py --list

# List units in category
python unit_converter.py --list length

# Show formula
python unit_converter.py 100 cm inches --formula
```

## API Reference

### UnitConverter Class

```python
class UnitConverter:
    def __init__(self)

    # Conversion
    def convert(self, value: float, from_unit: str, to_unit: str) -> float
    def convert_with_details(self, value: float, from_unit: str, to_unit: str) -> dict
    def batch_convert(self, values: list, from_unit: str, to_unit: str) -> list

    # Information
    def list_categories(self) -> list
    def list_units(self, category: str = None) -> dict
    def get_formula(self, from_unit: str, to_unit: str) -> str
    def find_unit(self, query: str) -> list
```

## Supported Categories

### Length
| Unit | Aliases |
|------|---------|
| meter | m |
| kilometer | km |
| centimeter | cm |
| millimeter | mm |
| inch | in |
| foot | ft |
| yard | yd |
| mile | mi |
| nautical_mile | nm |

### Mass
| Unit | Aliases |
|------|---------|
| kilogram | kg |
| gram | g |
| milligram | mg |
| pound | lb, lbs |
| ounce | oz |
| ton | |
| metric_ton | tonne |

### Temperature
| Unit | Aliases |
|------|---------|
| celsius | c |
| fahrenheit | f |
| kelvin | k |

### Time
| Unit | Aliases |
|------|---------|
| second | s, sec |
| minute | min |
| hour | h, hr |
| day | d |
| week | wk |
| month | mo |
| year | yr |

### Volume
| Unit | Aliases |
|------|---------|
| liter | l |
| milliliter | ml |
| gallon | gal |
| quart | qt |
| pint | pt |
| cup | |
| fluid_ounce | fl_oz |
| cubic_meter | m3 |

### Area
| Unit | Aliases |
|------|---------|
| square_meter | m2, sqm |
| square_kilometer | km2 |
| square_foot | sqft, ft2 |
| acre | |
| hectare | ha |

### Speed
| Unit | Aliases |
|------|---------|
| meters_per_second | m/s, mps |
| kilometers_per_hour | km/h, kph |
| miles_per_hour | mph |
| knots | kt |

### Digital Storage
| Unit | Aliases |
|------|---------|
| byte | b |
| kilobyte | kb |
| megabyte | mb |
| gigabyte | gb |
| terabyte | tb |

### Energy
| Unit | Aliases |
|------|---------|
| joule | j |
| kilojoule | kj |
| calorie | cal |
| kilocalorie | kcal |
| watt_hour | wh |
| kilowatt_hour | kwh |

## Example Workflows

### Batch Conversion
```python
converter = UnitConverter()
weights_kg = [50, 75, 100, 125]
weights_lbs = converter.batch_convert(weights_kg, "kg", "lbs")
for kg, lbs in zip(weights_kg, weights_lbs):
    print(f"{kg} kg = {lbs:.1f} lbs")
```

### Find Compatible Units
```python
converter = UnitConverter()
# Search for units
matches = converter.find_unit("meter")
# Returns: ['meter', 'kilometer', 'centimeter', ...]
```

### Get Conversion Formula
```python
converter = UnitConverter()
formula = converter.get_formula("celsius", "fahrenheit")
print(formula)  # "F = (C × 9/5) + 32"
```

## Output Format

### convert_with_details()
```python
{
    "value": 100,
    "from_unit": "km",
    "to_unit": "miles",
    "result": 62.1371,
    "formula": "miles = km × 0.621371",
    "category": "length"
}
```

## Dependencies

No external dependencies - uses Python standard library.

