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

planchette

v0.2.3

Published

A spectral project management tool for Large Language Models.

Readme

Planchette 🔮

A spectral project management tool for Large Language Models.

Overview 👁️

Planchette is a tool designed for LLMs to manage projects and interact with files. The name references the pointer used on a ouija board, as a metaphor for a tool that lends agency to an unseen force.

Planchette provides file operations, text editing, and a windowed workspace view designed specifically for LLMs to effectively manipulate and navigate text files without having to rewrite entire files for each change.

Installation 📦

npm install planchette

Usage 🛠️

Basic Setup

import planchette from 'planchette';

// Create a new session
const session = planchette({
  home: '/path/to/project'
});

// Get available commands
const commands = session.commands();

// Get workspace representation
const display = session.display();

Integration with LLMs 🧠

Planchette is designed to be integrated with LLM-powered applications. There are two key components that you'll need to incorporate:

  1. Commands - These should be exposed as tools/functions to the LLM
  2. Workspace Display - This should be included in the system prompt to show the LLM the current state

Command Structure 📝

Each command in Planchette's command array has the following structure:

{
  name: 'commandName',       // Name of the command
  description: 'Detailed description of what the command does',
  example: {
    description: 'Example usage description',
    options: { /* parameter examples */ }
  },
  perform: (options) => {},  // Function that performs the command
  validate: (options) => {}  // Validates the command parameters
}

When integrating with an LLM, you should:

  1. Map these commands to the function-calling capabilities of your LLM
  2. Use the validate function to verify parameters before execution
  3. Call the perform function with the parameters provided by the LLM

Available Features ✨

Planchette provides functionality in these core areas:

File Management

  • Opening files in the workspace
  • Closing files when no longer needed
  • Focusing on different files in the workspace

Text Navigation

  • Positioning the cursor before/after specific text
  • Selecting text ranges between markers
  • Dragging selections from cursor to target

Text Editing

  • Replacing selected text
  • Inserting at cursor position
  • Making incremental changes to files

Content Viewing

  • Scrolling through file content
  • Displaying visible portions of files
  • Showing cursor and selection state

Workspace Display 🖥️

The workspace display is a formatted text representation of the current state, including:

  • Open files with their content
  • Current focus highlighting
  • Cursor position and/or text selection
  • Scrolling position information

Example output:

# Workspace

## Focused: `app.js`
```
function hello() {
  console.log("Hello world");
}
```
Lines 1-3 of 10
Cursor at position 12

## Window 1: `utils.js`
```
export function helper() {
  return 'utility function';
}
```
Lines 1-3 of 5
```

This display may be included in the LLM's system prompt to provide context about the current workspace state.

Architecture 🏗️

Planchette follows a modular architecture with these key components:

  • Session - Manages the overall environment and provides the main API
  • Workspace - Tracks open files and their windows
  • Window - Provides a view into a file with cursor/selection state
  • Commands - Implements operations exposed to the LLM

Contributing 🦄

We welcome contributions to the Planchette project! If you have any ideas, bug reports, or pull requests, please feel free to submit them on the GitHub repository.

License 📄

Planchette is licensed under the MIT License.