An open API service indexing awesome lists of open source software.

https://github.com/openclaw/crawlbar

Menu bar control plane for local-first crawl apps
https://github.com/openclaw/crawlbar

Last synced: 21 days ago
JSON representation

Menu bar control plane for local-first crawl apps

Awesome Lists containing this project

README

          

# CrawlBar

CrawlBar is a macOS menu bar control plane for local-first `*crawl` apps.

It discovers crawler CLIs, reads metadata manifests, shows status/freshness/counts, runs refresh and doctor actions, writes redacted job logs, and keeps per-app config in `~/.crawlbar/config.json`.

## Apps

Built-in manifests ship for:

- `gitcrawl`
- `slacrawl`
- `discrawl`
- `notcrawl`
- `graincrawl`

Future crawler repos can drop a manifest JSON file into `~/.crawlbar/apps/*.json` to appear without a CrawlBar code change.

## Build

```sh
swift build
swift run crawlbar-selftest
swift run crawlbarctl apps --json
```

## CLI

```sh
crawlbar apps [--json]
crawlbar metadata [--app gitcrawl] [--json]
crawlbar status [--app all] [--json]
crawlbar query --app all -- manifest
crawlbar query --app slacrawl -- 'select count(*) from messages;'
crawlbar doctor --app discrawl [--json]
crawlbar refresh --app slacrawl [--json]
crawlbar action desktop-cache-import --app discrawl [--json]
crawlbar logs [--json]
crawlbar config path|validate|init
```

During development the SwiftPM product is `crawlbarctl` to avoid colliding with
the `CrawlBar` app binary on case-insensitive macOS filesystems. The install
script places it on PATH as `crawlbar`.

## Install

```sh
brew install vincentkoc/tap/crawlbar
# or
brew install openclaw/tap/crawlbar
```

The release also publishes the same formula to the OpenClaw Homebrew tap.

## Config

Main config lives at:

```text
~/.crawlbar/config.json
```

Action logs live at:

```text
~/.crawlbar/logs
```

Both are written with private file permissions. Command output is redacted before it is returned to the UI or persisted as an action log.

## Package The App

```sh
Scripts/package_app.sh
```

The packaged `.app` is written to `dist/CrawlBar.app`.

## Releases

Release notes are kept in [CHANGELOG.md](CHANGELOG.md). The packaged app bundle
version is generated by `Scripts/package_app.sh`.