41 releases

new 0.0.56 Nov 11, 2025
0.0.47 Sep 23, 2025
0.0.33 Jun 7, 2025
0.0.30 Mar 30, 2025

#46 in Text editors

Download history 1/week @ 2025-07-16 113/week @ 2025-08-13 313/week @ 2025-08-20 645/week @ 2025-08-27 456/week @ 2025-09-03 191/week @ 2025-09-10 263/week @ 2025-09-17 73/week @ 2025-09-24 137/week @ 2025-10-01 471/week @ 2025-10-08 483/week @ 2025-10-15 114/week @ 2025-10-22 7/week @ 2025-10-29

1,080 downloads per month

Apache-2.0

310KB
9K SLoC

IWE CLI

Command-line interface for IWE (IDE for Writing) - a local-first, markdown-based knowledge management tool designed for developers.

Installation

Install from source:

cargo install --path .

Or build locally:

cargo build --release

Quick Start

# Initialize a new workspace
mkdir my-notes && cd my-notes
iwe init

# Add some markdown files
echo "# Project Overview" > overview.md
echo "# Meeting Notes\n## Daily Standup" > meetings.md

# Normalize formatting
iwe normalize

# Generate table of contents
iwe contents

# Analyze your knowledge base
iwe stats

# Export statistics as CSV
iwe stats --format csv > stats.csv

# Explore knowledge graph paths
iwe paths

# Export for visualization
iwe export dot > graph.dot

Commands

init

Initialize a new IWE workspace with configuration.

iwe init

Creates .iwe/config.toml with default settings for markdown processing.

normalize

Format and normalize all markdown files in the workspace.

iwe normalize

Applies consistent formatting to headers, lists, links, and spacing according to configuration.

paths

List knowledge graph paths through document structure.

iwe paths                    # Default depth: 4
iwe paths --depth 2         # Limit traversal depth

Shows navigation paths through your content hierarchy.

squash

Combine content for a specific document key.

iwe squash --key document-name         # Default depth: 2
iwe squash --key project --depth 3     # Custom depth

Flattens hierarchical content into a single markdown document.

contents

Generate a table of contents for the workspace.

iwe contents

Creates markdown links to all top-level documents.

stats

Generate comprehensive statistics about your knowledge graph.

iwe stats                              # Markdown format (human-readable)
iwe stats --format csv                 # CSV format (machine-readable)
iwe stats -f csv > stats.csv          # Export to file

Provides detailed analytics including:

  • Document counts, sections, paragraphs, lines, and words
  • Reference statistics (block and inline references)
  • Structure analysis (lists, code blocks, tables, quotes)
  • Network analysis (most connected documents)
  • Per-document metrics in CSV format

export

Export knowledge graph in various formats.

iwe export json                        # JSON format
iwe export dot                         # DOT format
iwe export json --key project          # Filter by key
iwe export dot --depth 3               # Limit depth

Configuration

IWE uses .iwe/config.toml for workspace configuration:

[library]
path = ""  # Relative path to markdown files

[markdown]
normalize_headers = true
normalize_lists = true

Features

  • Fast Processing: Handle thousands of documents in seconds
  • Knowledge Graph: Understand document relationships and structure
  • Flexible Export: JSON and DOT formats for integration
  • Consistent Formatting: Automatic markdown normalization
  • Hierarchical Organization: Support for nested content structures
  • Link Management: Automatic link title updates

Examples

Basic Workflow

# Set up workspace
iwe init

# Process and format files
iwe normalize

# Understand structure
iwe paths --depth 3
iwe contents

# Generate reports
iwe squash --key meetings > all-meetings.md

Integration with Other Tools

# Visualize with Graphviz
iwe export dot | dot -Tpng > knowledge-graph.png

# Process with jq
iwe export json | jq '.[] | select(.title | contains("project"))'

# Analyze statistics with standard Unix tools
iwe stats -f csv | tail -n +2 | sort -t, -k12 -nr | head -10

# Generate reports with Python/pandas
iwe stats -f csv > stats.csv
python -c "import pandas as pd; df = pd.read_csv('stats.csv'); print(df.describe())"

# Batch processing
for file in *.md; do
    key=$(basename "$file" .md)
    iwe squash --key "$key" > "compiled-$key.md"
done

Global Options

All commands support:

  • -v, --verbose <LEVEL>: Set verbosity (0-2)
  • -h, --help: Show help information
  • -V, --version: Show version

Use Cases

  • Documentation Management: Keep technical docs organized and formatted
  • Research Notes: Connect and explore related concepts
  • Meeting Records: Combine distributed notes into comprehensive documents
  • Knowledge Base: Build searchable, linked information systems
  • Content Publishing: Generate clean, formatted output for sharing

Performance

IWE is optimized for large document collections:

  • Processes thousands of files in seconds
  • Efficient graph traversal algorithms
  • Minimal memory footprint
  • Parallel processing where beneficial

Integration

Works well with:

  • Git: Track changes to normalized markdown
  • VSCode/Neovim: Use with IWE LSP for full IDE experience
  • Static Site Generators: Clean, consistent markdown output
  • Documentation Tools: Export to various formats
  • Graph Visualization: DOT/Graphviz, Gephi, etc.

License

Apache-2.0

For more information, visit iwe.md.

Dependencies

~19–27MB
~507K SLoC