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

pointfree-docs

v0.2.1

Published

CLI tool for searching Point-Free library documentation

Readme

pf-docs

A CLI tool for searching Point-Free library documentation locally. Uses sparse git checkout and SQLite FTS5 for fast, offline full-text search. Built for use with AI coding assistants like Claude Code.

Demo

See pf-docs in action: install, search, and real-world usage with Claude Code.

https://github.com/user-attachments/assets/ed6c6340-2d29-4515-89ca-62f65cfa4755

Quick Start

# Install from npm
npm install -g pointfree-docs

# Or install from source
git clone https://github.com/ronnie3786/pointfree-docs.git
cd pointfree-docs
npm install
npm run build
npm link

# See what libraries are available
pf-docs list --available

# Download and index the ones you use
pf-docs init --libs tca dependencies navigation

# Search, browse, and read
pf-docs search "testing effects"
pf-docs get tca/Articles/TestingTCA
pf-docs list tca

Commands

pf-docs list --available

Show all libraries available to download, plus additional sources (examples, episodes).

pf-docs init

Download and index documentation. Only fetches Documentation.docc folders via sparse checkout.

pf-docs init --libs tca dependencies navigation
pf-docs init --all
pf-docs init --examples           # TCA CaseStudies, SyncUps, etc.
pf-docs init --episodes           # 350+ Point-Free episode code samples
pf-docs init --all --examples --episodes  # Everything

pf-docs update

Pull latest changes and re-index.

pf-docs update                    # All initialized libraries
pf-docs update --libs tca         # Specific libraries
pf-docs update --examples         # Update examples
pf-docs update --episodes         # Update episodes

pf-docs search <query>

Full-text search across all indexed docs.

pf-docs search "testing effects"
pf-docs search "navigation" --lib tca
pf-docs search "Store" --limit 5

# Search by source type
pf-docs search "TestStore" --source=docs      # Default: docs only
pf-docs search "TestStore" --source=examples  # TCA examples only
pf-docs search "TestStore" --source=episodes  # Episode code only
pf-docs search "TestStore" --source=all       # Everything, labeled

pf-docs get <path>

Fetch a specific article as clean markdown.

pf-docs get tca/Articles/TestingTCA
pf-docs get dependencies/Articles/QuickStart --raw

# Code files show preview by default (50 lines)
pf-docs get examples/CaseStudies/03-Effects-Basics.swift
pf-docs get examples/CaseStudies/03-Effects-Basics.swift --raw      # Full content
pf-docs get episodes/0156-testable-state/Main.swift --lines=100     # More lines

pf-docs list [lib]

List indexed documentation.

pf-docs list                      # All indexed docs
pf-docs list tca --tree           # Tree view for one library
pf-docs list --source=examples    # Only examples
pf-docs list --source=all         # All sources

pf-docs stats

Show indexing statistics by source and library.

All commands support --json for programmatic output.

Supported Libraries

| Short Name | Library | Description | |---|---|---| | tca | swift-composable-architecture | The Composable Architecture | | dependencies | swift-dependencies | Dependency injection library | | navigation | swift-navigation | Navigation tools for Swift | | perception | swift-perception | @Observable backported to iOS 16 | | sharing | swift-sharing | Persistence & data sharing | | identified-collections | swift-identified-collections | Identifiable-aware collections | | case-paths | swift-case-paths | Key paths for enum cases | | custom-dump | swift-custom-dump | Debugging/diffing tools | | concurrency-extras | swift-concurrency-extras | Testable async/await | | clocks | swift-clocks | Testable Swift concurrency clocks | | snapshot-testing | swift-snapshot-testing | Snapshot testing library | | issue-reporting | swift-issue-reporting | Runtime warnings & assertions |

Run pf-docs list --available to see this list in your terminal.

Additional Sources

| Source | Description | Flag | |--------|-------------|------| | examples | TCA CaseStudies, SyncUps, Todos, VoiceMemos, etc. | --examples | | episodes | 350+ Point-Free episode code samples | --episodes |

Source Types for Search

When searching, you can filter by source type:

  • docs (default) — Library documentation (DocC articles)
  • examples — TCA example apps and case studies
  • episodes — Point-Free episode code samples
  • all — Everything, with labels showing the source
# Search docs for concepts
pf-docs search "testing effects"

# Search examples for real implementations
pf-docs search "TestStore" --source=examples

# Search everything
pf-docs search "dependency injection" --source=all

Results with --source=all are labeled:

[DOC]     tca/Articles/Testing           (0.94)
[EXAMPLE] CaseStudies/03-Effects-Basics  (0.82)
[EPISODE] Ep156: Testable State          (0.71)

Usage with Claude Code

Add the key commands to your project's CLAUDE.md:

Use `pf-docs search "<query>"` to search Point-Free docs.
Use `pf-docs search "<query>" --source=examples` to find real code examples.
Use `pf-docs get <path>` to read an article or code file.

Adding Libraries

Edit src/config.ts to add entries, then run pf-docs init --libs <shortName> to download.

Development

npm install
npm run dev      # Watch mode
npm run build    # Build once
npm link         # Install globally

Cloned repos and the search index are stored in data/ (gitignored).

License

MIT