Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 30 additions & 2 deletions .github/workflows/version-bump.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,35 @@ jobs:
run: echo "${{ steps.next.outputs.version }}" > VERSION

- name: Increment versionCode
id: vcode
run: |
FILE=android/app/build.gradle.kts
CODE=$(grep -oP 'versionCode\s*=\s*\K\d+' "$FILE")
sed -i "s/versionCode\s*=\s*[0-9]\+/versionCode = $((CODE+1))/" "$FILE"
echo "versionCode: $CODE -> $((CODE+1))"
NEW_CODE=$((CODE+1))
sed -i "s/versionCode\s*=\s*[0-9]\+/versionCode = $NEW_CODE/" "$FILE"
echo "versionCode: $CODE -> $NEW_CODE"
echo "code=$NEW_CODE" >> "$GITHUB_OUTPUT"

- name: Generate fastlane changelog
env:
GH_TOKEN: ${{ github.token }}
run: |
PREV_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
if [ -n "$PREV_TAG" ]; then
MERGED_SINCE=$(git log -1 --format=%aI "$PREV_TAG")
NOTES=$(gh pr list --state merged --base main \
--search "merged:>$MERGED_SINCE" \
--json title --jq '.[].title | "* " + .' | head -20)
fi
if [ -z "${NOTES:-}" ]; then
NOTES="* v${{ steps.next.outputs.version }}"
fi
CODE=${{ steps.vcode.outputs.code }}
for locale in en-US ja; do
dir="android/fastlane/metadata/android/${locale}/changelogs"
mkdir -p "$dir"
printf '%s\n' "$NOTES" > "${dir}/${CODE}.txt"
done

- name: Create Pull Request
uses: peter-evans/create-pull-request@v7
Expand All @@ -54,3 +78,7 @@ jobs:
body: "Automated version bump: `${{ steps.current.outputs.version }}` → `${{ steps.next.outputs.version }}`"
branch: chore/bump-${{ steps.next.outputs.version }}
delete-branch: true
add-paths: |
VERSION
android/app/build.gradle.kts
android/fastlane/metadata/android/
11 changes: 11 additions & 0 deletions android/fastlane/metadata/android/en-US/changelogs/4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
Initial release.

* Chat UI with Jetpack Compose
* Embedded Go backend (single binary in APK)
* Voice mode with continuous conversation loop
* Floating assistant overlay (replace Google Assistant)
* Device automation via AccessibilityService
* 16+ built-in tools (file ops, web search, memory, cron, MCP)
* Multi-channel support (Telegram, Discord, Slack, WhatsApp, LINE)
* 10+ LLM providers (OpenAI, Anthropic, Gemini, and more)
* Termux edition for advanced users

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This file is missing a final newline character. It's a good practice to end text files with a newline to ensure compatibility with various text-processing tools and to adhere to POSIX standards for text files.

* Termux edition for advanced users

26 changes: 26 additions & 0 deletions android/fastlane/metadata/android/en-US/full_description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
ClawDroid is an Android AI assistant with an embedded Go backend. Install the APK, launch, and start chatting — no separate server setup needed.

A Kotlin/Jetpack Compose app provides the chat UI, voice assistant, and device automation. The Go backend runs as a single binary bundled inside the APK, handling the agent loop, tool execution, LLM calls, and messaging channels.

<b>Features:</b>

* Chat UI built with Jetpack Compose
* Floating assistant overlay — replace Google Assistant with long-press home
* Voice mode — continuous conversation loop (listen, send, think, speak)
* Device automation — tap, swipe, text input, screenshot via AccessibilityService
* 16+ built-in tools — file operations, web search, memory, cron, sub-agents, MCP
* Multi-channel messaging — Telegram, Discord, Slack, WhatsApp, LINE
* 10+ LLM providers — OpenAI, Anthropic, Gemini, DeepSeek, Groq, Mistral, Ollama, and more
* Long-term memory and daily notes
* Scheduled tasks with cron expressions
* MCP (Model Context Protocol) server support
* Customizable personality via workspace files

<b>Two editions:</b>

* Embedded — Go backend bundled in the APK, works out of the box
* Termux — Run the Go backend separately in Termux for advanced users

Requires an LLM API key (OpenAI, Anthropic, Gemini, etc.) to function.

Source code: https://github.com/KarakuriAgent/clawdroid

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This file is missing a final newline character. It's a good practice to end text files with a newline to ensure compatibility with various text-processing tools and to adhere to POSIX standards for text files.

Source code: https://github.com/KarakuriAgent/clawdroid

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
AI assistant with embedded Go backend - chat, voice, device automation

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This file is missing a final newline character. It's a good practice to end text files with a newline to ensure compatibility with various text-processing tools and to adhere to POSIX standards for text files.

AI assistant with embedded Go backend - chat, voice, device automation

11 changes: 11 additions & 0 deletions android/fastlane/metadata/android/ja/changelogs/4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
初回リリース

* Jetpack Composeチャット UI
* Go内蔵バックエンド(APK内バイナリ)
* 音声モード(会話ループ)
* アシスタントオーバーレイ
* デバイス自動操作(タップ、スワイプ等)
* 16以上のツール(ファイル、Web検索、メモリ、MCP)
* マルチチャンネル(Telegram、Discord、Slack等)
* 10以上のLLMプロバイダー対応
* Termux版

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This file is missing a final newline character. It's a good practice to end text files with a newline to ensure compatibility with various text-processing tools and to adhere to POSIX standards for text files.

* Termux版

26 changes: 26 additions & 0 deletions android/fastlane/metadata/android/ja/full_description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
ClawDroidはGoバックエンドを内蔵したAndroid AIアシスタントです。APKをインストールして起動するだけですぐに使えます。サーバーの別途セットアップは不要です。

Kotlin/Jetpack Composeアプリがチャット UI、音声アシスタント、デバイス自動操作を提供します。Goバックエンドはシングルバイナリとして APK 内にバンドルされ、エージェントループ、ツール実行、LLM呼び出し、メッセージングチャンネルを処理します。

<b>主な機能:</b>

* Jetpack Composeで構築されたチャットUI
* フローティングアシスタントオーバーレイ — ホームボタン長押しでGoogleアシスタントの代わりに起動
* 音声モード — 継続的な会話ループ(聞く→送信→思考→話す)
* デバイス自動操作 — AccessibilityServiceによるタップ、スワイプ、テキスト入力、スクリーンショット
* 16以上の組み込みツール — ファイル操作、Web検索、メモリ、cron、サブエージェント、MCP
* マルチチャンネル — Telegram、Discord、Slack、WhatsApp、LINE
* 10以上のLLMプロバイダー — OpenAI、Anthropic、Gemini、DeepSeek、Groq、Mistral、Ollama等
* 長期メモリとデイリーノート
* cron式によるスケジュールタスク
* MCP(Model Context Protocol)サーバー対応
* ワークスペースファイルによるカスタマイズ可能なパーソナリティ

<b>2つのエディション:</b>

* 組み込み版 — Goバックエンドを APK に内蔵、すぐに使える
* Termux版 — 上級者向け、GoバックエンドをTermuxで別途実行

動作にはLLM APIキー(OpenAI、Anthropic、Gemini等)が必要です。

ソースコード: https://github.com/KarakuriAgent/clawdroid

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This file is missing a final newline character. It's a good practice to end text files with a newline to ensure compatibility with various text-processing tools and to adhere to POSIX standards for text files.

ソースコード: https://github.com/KarakuriAgent/clawdroid

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions android/fastlane/metadata/android/ja/short_description.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Go内蔵AIアシスタント - チャット、音声、デバイス自動操作

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This file is missing a final newline character. It's a good practice to end text files with a newline to ensure compatibility with various text-processing tools and to adhere to POSIX standards for text files.

Go内蔵AIアシスタント - チャット、音声、デバイス自動操作

67 changes: 67 additions & 0 deletions fdroid/metadata/io.clawdroid.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# F-Droid metadata for ClawDroid
# Reference: https://f-droid.org/docs/Build_Metadata_Reference/
#
# This file is a template for submitting to fdroiddata.
# To submit: fork https://gitlab.com/fdroid/fdroiddata, add this file
# to metadata/, and create a merge request.

Categories:
- System
- Internet

License: MIT
AuthorName: KarakuriAgent
WebSite: https://github.com/KarakuriAgent/clawdroid
SourceCode: https://github.com/KarakuriAgent/clawdroid
IssueTracker: https://github.com/KarakuriAgent/clawdroid/issues
Changelog: https://github.com/KarakuriAgent/clawdroid/releases

AntiFeatures:
NonFreeNet:
en-US: Requires a third-party LLM API (OpenAI, Anthropic, etc.) to function.
ja: 動作にサードパーティのLLM API(OpenAI、Anthropic等)が必要です。

RepoType: git
Repo: https://github.com/KarakuriAgent/clawdroid.git

Builds:
- versionName: 0.4.0
versionCode: 4
commit: '0.4.0'
timeout: 20000
subdir: android/app
submodules: true

sudo:
- apt-get update
- apt-get install -y make

init: |-
cd ../..
# Extract Go version from go.mod
GO_VERSION=$(grep '^go ' go.mod | awk '{print $2}')

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The go.mod file seems to specify Go version 1.25.6, which is not a valid Go version and will cause the wget command on line 44 to fail with a 404 error. Please correct the Go version in go.mod to a valid, available version (e.g., a recent stable version like 1.22.x). This is critical for the F-Droid build to succeed.

# Download and install Go
wget -q https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz
tar -C $HOME -xzf go${GO_VERSION}.linux-amd64.tar.gz
rm go${GO_VERSION}.linux-amd64.tar.gz

prebuild: |-
cd ../..
export PATH=$HOME/go/bin:$PATH
export GOPATH=$HOME/gopath
# Build Go backend for all Android architectures
make build-android

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

The make build-android command is executed here to build the Go backend. However, the build-android target in the Makefile uses GOOS=linux instead of the correct GOOS=android for cross-compiling to Android. This will produce binaries for Linux instead of Android, which will likely fail to run on a device. Please update the Makefile to use GOOS=android for all Android build commands.


gradle:
- embedded

ndk: r27c

antifeatures:
NonFreeNet:
en-US: Requires a third-party LLM API to function.

Comment on lines +60 to +63

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This antifeatures block overrides the global AntiFeatures defined on lines 19-22. The message here is less descriptive and is missing the Japanese translation. To maintain consistency and provide better information to users, I recommend removing this block and relying on the global definition.

AutoUpdateMode: Version
UpdateCheckMode: Tags
CurrentVersion: 0.4.0
CurrentVersionCode: 4