mirror of
https://github.com/runbear-io/beardrive.git
synced 2026-08-25 08:08:08 +02:00
rename: brand the product BearDrive, keep sfs as the CLI
BearDrive is the product and repo brand (open source + future managed cloud); sfs stays the CLI command, and .sfs/.sfsignore/~/.sfs conventions are unchanged, so nothing breaks. Brew formula becomes runbear-io/tap/beardrive (still installs the sfs binary). Not included here (need the GitHub repo rename first): the Go module path and repo URLs. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HHEUaYfFHhmDvqLYw74Ehz
This commit is contained in:
co-authored by
Claude Fable 5
parent
2d29ff8aac
commit
7f098b3ff5
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "sfs",
|
||||
"owner": { "name": "runbear", "email": "snow@runbear.io" },
|
||||
"description": "sfs — a synced file system for AI agents",
|
||||
"description": "BearDrive (sfs) — a synced file system for AI agents",
|
||||
"plugins": [
|
||||
{
|
||||
"name": "sfs",
|
||||
"source": "./plugin",
|
||||
"description": "Mount folders that stay in sync across devices through S3/GCS/any object store. Installs the sfs skill, /sfs:mount and /sfs:status commands, and turn-boundary sync hooks in one step.",
|
||||
"description": "BearDrive: mount folders that stay in sync across devices through S3/GCS/any object store. Installs the sfs skill, /sfs:mount and /sfs:status commands, and turn-boundary sync hooks in one step.",
|
||||
"category": "workflow",
|
||||
"tags": ["sync", "files", "workspace", "s3", "gcs", "agents"]
|
||||
}
|
||||
|
||||
+5
-4
@@ -1,9 +1,10 @@
|
||||
# Release automation: `goreleaser release` on a tagged commit builds
|
||||
# macOS/Linux binaries and publishes the Homebrew formula to
|
||||
# runbear-io/homebrew-tap, enabling `brew install runbear-io/tap/sfs`.
|
||||
# runbear-io/homebrew-tap, enabling `brew install runbear-io/tap/beardrive`.
|
||||
# The product is BearDrive; the binaries keep their short names (sfs, sfs-web).
|
||||
version: 2
|
||||
|
||||
project_name: sfs
|
||||
project_name: beardrive
|
||||
|
||||
builds:
|
||||
- id: sfs
|
||||
@@ -41,12 +42,12 @@ checksum:
|
||||
name_template: checksums.txt
|
||||
|
||||
brews:
|
||||
- name: sfs
|
||||
- name: beardrive
|
||||
repository:
|
||||
owner: runbear-io
|
||||
name: homebrew-tap
|
||||
homepage: https://github.com/runbear-io/sfs
|
||||
description: "Synced file system for AI agents: mount, sync, and track folders"
|
||||
description: "BearDrive: a synced file system for AI agents — mount, sync, and track folders"
|
||||
license: MIT
|
||||
test: |
|
||||
assert_match "sfs", shell_output("#{bin}/sfs version")
|
||||
|
||||
@@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
||||
|
||||
## What this is
|
||||
|
||||
`sfs` is a Go CLI that mounts any folder as a synced volume: contents sync across devices through cloud object storage (S3, GCS, S3-compatible, or a plain directory), with per-file change history and offline support. No server — devices converge through append-only journals in a dumb object store.
|
||||
**BearDrive** is the product name; `sfs` is its CLI (and the historical project name — binary names, `.sfs`/`.sfsignore` files, and `~/.sfs` stay `sfs` deliberately). `sfs` is a Go CLI that mounts any folder as a synced volume: contents sync across devices through cloud object storage (S3, GCS, S3-compatible, or a plain directory), with per-file change history and offline support. No server — devices converge through append-only journals in a dumb object store.
|
||||
|
||||
The repo ships two binaries from one Go module: `cmd/sfs` (the CLI + sync daemon) and `cmd/sfs-web` (a read-only web viewer for a remote).
|
||||
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
# sfs — a synced file system for AI agents
|
||||
# BearDrive — a synced file system for AI agents
|
||||
|
||||
**sfs** mounts any folder as a synced volume: its contents stay synchronized
|
||||
across all your devices through cloud object storage, every change is
|
||||
tracked (who, when, on which device), and everything keeps working offline.
|
||||
**BearDrive** mounts any folder as a synced volume: its contents stay
|
||||
synchronized across all your devices through cloud object storage, every
|
||||
change is tracked (who, when, on which device), and everything keeps
|
||||
working offline. The CLI is `sfs` — short for synced file system.
|
||||
|
||||
It is built for AI agent workflows — give your agents on every machine the
|
||||
same `~/agent-workspace`, and notes, plans, memory files, and artifacts
|
||||
@@ -53,7 +54,7 @@ $ sfs mnt ./workspace --remote s3://my-bucket/workspace
|
||||
## Install
|
||||
|
||||
```sh
|
||||
brew install runbear-io/tap/sfs # macOS (and Linuxbrew)
|
||||
brew install runbear-io/tap/beardrive # macOS (and Linuxbrew); installs the `sfs` CLI
|
||||
```
|
||||
|
||||
or from source:
|
||||
|
||||
+3
-2
@@ -18,8 +18,9 @@ var version = "0.1.0-dev"
|
||||
func main() {
|
||||
root := &cobra.Command{
|
||||
Use: "sfs",
|
||||
Short: "A synced file system for AI agents",
|
||||
Long: `sfs — a mountable, offline-first, synced file system for AI agents.
|
||||
Short: "BearDrive: a synced file system for AI agents",
|
||||
Long: `sfs — the BearDrive CLI. A mountable, offline-first, synced file
|
||||
system for AI agents.
|
||||
|
||||
Mount any folder and sfs keeps it synchronized across your devices through
|
||||
cloud object storage (Amazon S3, Google Cloud Storage, or a plain shared
|
||||
|
||||
@@ -199,7 +199,7 @@ func TestFrontendServed(t *testing.T) {
|
||||
f := newFakeRemote(t)
|
||||
h := f.server().Handler()
|
||||
rec := get(t, h, "/")
|
||||
if rec.Code != 200 || !strings.Contains(rec.Body.String(), "<title>sfs</title>") {
|
||||
if rec.Code != 200 || !strings.Contains(rec.Body.String(), "<title>BearDrive</title>") {
|
||||
t.Fatalf("index: %d", rec.Code)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,9 +22,9 @@ async function getJSON(url) {
|
||||
async function boot() {
|
||||
try {
|
||||
const v = await getJSON("api/volume");
|
||||
$("vault-name").textContent = v.volume || "sfs";
|
||||
$("vault-name").textContent = v.volume || "BearDrive";
|
||||
$("vault-remote").textContent = v.remote || "";
|
||||
document.title = (v.volume || "sfs") + " — sfs";
|
||||
document.title = (v.volume || "sfs") + " — BearDrive";
|
||||
} catch { /* non-fatal */ }
|
||||
await refreshTree();
|
||||
const p = decodeURIComponent(location.hash.slice(1));
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>sfs</title>
|
||||
<title>BearDrive</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>📁</text></svg>">
|
||||
</head>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "sfs",
|
||||
"displayName": "sfs",
|
||||
"description": "Synced file system for AI agents: mount folders that stay in sync across devices through S3/GCS/any object store, with automatic sync at turn boundaries and full change history.",
|
||||
"displayName": "BearDrive (sfs)",
|
||||
"description": "BearDrive: a synced file system for AI agents. Mount folders that stay in sync across devices through S3/GCS/any object store, with automatic sync at turn boundaries and full change history. CLI: sfs.",
|
||||
"version": "0.1.0",
|
||||
"author": { "name": "runbear", "url": "https://github.com/runbear-io" },
|
||||
"homepage": "https://github.com/runbear-io/sfs",
|
||||
|
||||
@@ -3,9 +3,9 @@ name: sfs
|
||||
description: Use sfs — a mountable, synced file system for AI agents. Mount any folder and it stays synced across devices through cloud object storage (S3, GCS, S3-compatible, or a shared directory) with full per-file change history and offline support. Use when the user wants to "mount a folder", "unmount", "sync now", "set up sfs cloud storage", "connect sfs to S3/GCS/R2/MinIO/NAS", "check sfs status", "see sfs logs", "see what changed", "who changed this file?", or troubleshoot a stuck sync.
|
||||
---
|
||||
|
||||
# sfs — synced file system for AI agents
|
||||
# sfs — synced file system for AI agents (BearDrive)
|
||||
|
||||
`sfs` mounts any folder as a synced volume backed by an object store. Each mount runs a per-mount background daemon that scans for local changes and exchanges with the remote. Files on disk are always real files — every tool, editor, and agent works on them with no integration.
|
||||
`sfs` is the CLI of **BearDrive**. It mounts any folder as a synced volume backed by an object store. Each mount runs a per-mount background daemon that scans for local changes and exchanges with the remote. Files on disk are always real files — every tool, editor, and agent works on them with no integration.
|
||||
|
||||
Use this skill whenever the user is working with the `sfs` CLI: mounting, unmounting, syncing, configuring a remote, inspecting state, reading change history, or debugging.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user