Skip to content

Commit 37e7411

Browse files
committed
Freebuff initial commit
1 parent 619cdd7 commit 37e7411

File tree

9 files changed

+1211
-1
lines changed

9 files changed

+1211
-1
lines changed
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
name: FreeBuff Release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
version_type:
7+
description: 'Version bump type'
8+
required: true
9+
default: 'patch'
10+
type: choice
11+
options:
12+
- patch
13+
- minor
14+
- major
15+
16+
concurrency:
17+
group: freebuff-release
18+
cancel-in-progress: false
19+
20+
permissions:
21+
contents: write
22+
23+
jobs:
24+
prepare-and-commit:
25+
runs-on: ubuntu-latest
26+
outputs:
27+
new_version: ${{ steps.bump_version.outputs.new_version }}
28+
steps:
29+
- uses: actions/checkout@v4
30+
with:
31+
token: ${{ secrets.GITHUB_TOKEN }}
32+
33+
- uses: ./.github/actions/setup-project
34+
35+
- name: Calculate and update version
36+
id: bump_version
37+
run: |
38+
cd freebuff/cli/release
39+
40+
CURRENT_VERSION=$(bun -e "console.log(require('./package.json').version)")
41+
echo "Current version: $CURRENT_VERSION"
42+
43+
npm version ${{ inputs.version_type }} --no-git-tag-version
44+
NEW_VERSION=$(bun -e "console.log(require('./package.json').version)")
45+
46+
echo "New FreeBuff version: $NEW_VERSION"
47+
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
48+
49+
- name: Configure git
50+
run: |
51+
git config --global user.name "github-actions[bot]"
52+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
53+
54+
- name: Commit and push version bump
55+
run: |
56+
git stash
57+
git pull --rebase origin main
58+
git stash pop
59+
git add freebuff/cli/release/package.json
60+
git commit -m "Bump FreeBuff version to ${{ steps.bump_version.outputs.new_version }}"
61+
git push
62+
63+
- name: Create and push tag
64+
run: |
65+
git tag "freebuff-v${{ steps.bump_version.outputs.new_version }}"
66+
git push origin "freebuff-v${{ steps.bump_version.outputs.new_version }}"
67+
68+
- name: Upload updated package
69+
uses: actions/upload-artifact@v4
70+
with:
71+
name: freebuff-updated-package
72+
path: freebuff/cli/release/
73+
74+
build-binaries:
75+
needs: prepare-and-commit
76+
uses: ./.github/workflows/cli-release-build.yml
77+
with:
78+
binary-name: freebuff
79+
new-version: ${{ needs.prepare-and-commit.outputs.new_version }}
80+
artifact-name: freebuff-updated-package
81+
checkout-ref: ${{ github.sha }}
82+
env-overrides: '{"FREEBUFF_MODE": "true", "NEXT_PUBLIC_CB_ENVIRONMENT": "prod"}'
83+
secrets: inherit
84+
85+
create-release:
86+
needs: [prepare-and-commit, build-binaries]
87+
runs-on: ubuntu-latest
88+
steps:
89+
- uses: actions/checkout@v4
90+
91+
- name: Download all binary artifacts
92+
uses: actions/download-artifact@v4
93+
with:
94+
path: binaries/
95+
96+
- name: Download updated package
97+
uses: actions/download-artifact@v4
98+
with:
99+
name: freebuff-updated-package
100+
path: freebuff/cli/release/
101+
102+
- name: Create GitHub Release
103+
uses: softprops/action-gh-release@v1
104+
with:
105+
tag_name: freebuff-v${{ needs.prepare-and-commit.outputs.new_version }}
106+
name: FreeBuff v${{ needs.prepare-and-commit.outputs.new_version }}
107+
prerelease: false
108+
body: |
109+
## FreeBuff v${{ needs.prepare-and-commit.outputs.new_version }}
110+
111+
Free AI coding assistant — binary releases for all supported platforms.
112+
113+
### Installation
114+
```bash
115+
npm install -g freebuff
116+
```
117+
118+
### Platform Binaries
119+
- `freebuff-linux-x64.tar.gz` - Linux x64
120+
- `freebuff-linux-arm64.tar.gz` - Linux ARM64
121+
- `freebuff-darwin-x64.tar.gz` - macOS Intel
122+
- `freebuff-darwin-arm64.tar.gz` - macOS Apple Silicon
123+
- `freebuff-win32-x64.tar.gz` - Windows x64
124+
files: |
125+
binaries/*/freebuff-*
126+
repository: CodebuffAI/codebuff-community
127+
token: ${{ secrets.CODEBUFF_GITHUB_TOKEN }}
128+
129+
publish-npm:
130+
needs: [prepare-and-commit, create-release]
131+
runs-on: ubuntu-latest
132+
permissions:
133+
contents: read
134+
id-token: write
135+
steps:
136+
- uses: actions/checkout@v4
137+
138+
- name: Download updated package
139+
uses: actions/download-artifact@v4
140+
with:
141+
name: freebuff-updated-package
142+
path: freebuff/cli/release/
143+
144+
- name: Set up Node.js for npm publishing
145+
uses: actions/setup-node@v4
146+
with:
147+
node-version: 24
148+
registry-url: https://registry.npmjs.org/
149+
150+
- name: Publish to npm
151+
run: |
152+
cd freebuff/cli/release
153+
npm publish --access public
154+
env:
155+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

freebuff/README.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# FreeBuff
2+
3+
FreeBuff is a free-only variant of the [Codebuff](https://codebuff.com) CLI — an AI coding assistant that runs in your terminal.
4+
5+
## Installation
6+
7+
```bash
8+
npm install -g freebuff
9+
```
10+
11+
## Usage
12+
13+
```bash
14+
cd ~/my-project
15+
freebuff
16+
```
17+
18+
FreeBuff runs in FREE mode only — no subscription or credits required. Just log in and start coding.
19+
20+
## Features
21+
22+
- **AI-powered coding** — Describe what you want, and FreeBuff edits your code
23+
- **File mentions** — Use `@filename` to reference specific files
24+
- **Agent mentions** — Use `@AgentName` to invoke specialized agents
25+
- **Bash mode** — Run terminal commands with `!command` or `/bash`
26+
- **Image attachments** — Attach images with `/image` or `Ctrl+V`
27+
- **Chat history** — Resume past conversations with `/history`
28+
- **Knowledge files** — Add `knowledge.md` to your project for context
29+
- **Themes** — Toggle light/dark mode with `/theme:toggle`
30+
31+
## Commands
32+
33+
| Command | Description |
34+
|---|---|
35+
| `/help` | Show keyboard shortcuts and tips |
36+
| `/new` | Start a new conversation |
37+
| `/history` | Browse past conversations |
38+
| `/bash` | Enter bash mode |
39+
| `/init` | Create a starter knowledge.md |
40+
| `/feedback` | Share feedback |
41+
| `/theme:toggle` | Toggle light/dark mode |
42+
| `/logout` | Sign out |
43+
| `/exit` | Quit |
44+
45+
## How It Works
46+
47+
FreeBuff connects to the Codebuff backend and uses the FREE mode agent, which is optimized for fast, cost-effective assistance. Ads are shown to support the free tier.
48+
49+
## Project Structure
50+
51+
```
52+
freebuff/
53+
├── cli/ # CLI build & npm release files
54+
└── web/ # (Future) FreeBuff website
55+
```
56+
57+
## Building from Source
58+
59+
```bash
60+
# From the repo root
61+
bun freebuff/cli/build.ts 1.0.0
62+
```
63+
64+
This produces a `freebuff` binary in `cli/bin/`.
65+
66+
## Links
67+
68+
- [Codebuff Documentation](https://codebuff.com/docs)
69+
- [Codebuff Website](https://codebuff.com)
70+
71+
## License
72+
73+
MIT

0 commit comments

Comments
 (0)