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

@baselhusam/daily-hub

v0.2.1

Published

A personal command center for projects, tasks, and daily habits.

Readme


A personal command center for people who juggle more than one project at a time — founders, consultants, indie builders, anyone with client work, side projects, and a few non-negotiable daily habits.

DailyHub is not a replacement for Linear, Jira, or Notion. It is the morning surface: what is open, what belongs where, what must happen today, and what you already finished.

See it in action

Features

  • Today — greeting, quick add, nudges, today’s habits, open work by project, and an inbox
  • Projects — status, due dates, milestones, and stalled-work banners
  • Habits — weekday schedules, 14-day consistency, and completion rate
  • Analytics — completions over time, project breakdown, and weekday patterns
  • Command palette — jump to projects, tasks, habits, and milestones
  • Local by default — SQLite on disk, light and dark themes, no accounts

Quick start

Requires Node.js 22+.

npx @baselhusam/daily-hub

Opens http://127.0.0.1:9999. Data lives in ~/.daily-hub/ (data.db and uploads/). The first download is ~80 MB because the package ships the full Next.js app; later runs are instant.

npx @baselhusam/daily-hub --seed               # sample data on first run
npx @baselhusam/daily-hub --port 3000          # different port
npx @baselhusam/daily-hub --data-dir ~/my-hub  # custom data directory
npx @baselhusam/daily-hub --no-open            # don't open the browser
npx @baselhusam/daily-hub --no-mcp             # disable the local MCP endpoint
npx @baselhusam/daily-hub --detach             # run in the background
npx @baselhusam/daily-hub --update             # run the latest published version

--update (or update) fetches and runs the latest published DailyHub release. Any other options are preserved, so npx @baselhusam/daily-hub --update --port 3000 updates and starts it on port 3000.

--detach starts DailyHub in the background, opens the app when it is ready, and lets you close the terminal. Manage that instance later with:

npx @baselhusam/daily-hub status
npx @baselhusam/daily-hub logs
npx @baselhusam/daily-hub stop

The background process and log are recorded in the selected data directory (~/.daily-hub/ by default); pass the same --data-dir to the management commands if you use a custom location. It remains running until stopped or the computer restarts; use Docker or a system service if you need automatic restarts.

MCP integration

DailyHub starts a local, token-protected MCP endpoint by default at /mcp on the selected app port. After starting the app, print a ready-to-copy client configuration with:

npx @baselhusam/daily-hub mcp

The endpoint is bound to 127.0.0.1 and requires the bearer token in that output. The token is stored with owner-only permissions in ~/.daily-hub/daily-hub-mcp.json. Disable the endpoint for a launch with --no-mcp.

Do not keep ~/.daily-hub/ in iCloud, Dropbox, or other file-sync folders — SQLite and file sync can corrupt the database. Backup is a copy of that folder (or your --data-dir).

Docker

docker run -d --name dailyhub -p 9999:9999 \
  -v dailyhub_data:/app/data \
  baselhusam/daily-hub:latest

Open http://localhost:9999. Data persists in the dailyhub_data volume. Pin a version with baselhusam/daily-hub:X.Y.Z (same as the npm version). Images are also published to ghcr.io/baselhusam/daily-hub. Optional sample data:

docker exec dailyhub npm run db:seed

From a clone, docker compose up -d pulls the same image; docker compose up --build compiles from this tree.

v1 has no authentication. Keep it on localhost, a private network, or behind a reverse proxy. Full self-hosting notes are in docs/DEPLOYMENT.md.

Development

npm install
npm run dev

Runs on port 9999 with SQLite in ./.data/. Commands, layout, and conventions live in CLAUDE.md.

Built with

Next.js 15, TypeScript, SQLite, and Prisma. There is no separate API server — reads go through Server Components, writes through Server Actions.

Documentation

License

MIT © Basel Husam