Skip to content

Conversation

@shawn111
Copy link
Contributor

@shawn111 shawn111 commented Aug 6, 2025

Updated,

Just support linux computer control for android.
For build issue, let termux-package (termux upstream) to handle.


Updated,

We need some minor changes to support goose run on termux.

  1. (goose-mcp) linux computer control add termux support
  2. (goose-mcp) - I use android-patch.sh to handle xcap
    • latest xcap required ubuntu newer than 20.04 but cross.rs only support 20.04
    • xcap support android build not merge to upstream yet.
    • latest xcap handle w.tilte() is different to xcap 0.0.14
  3. create .github/workflows/build-termux-cli.yml to trigger termux build.

If people like to try https://github.com/shawn111/goose/releases/download/termux/goose-termux-aarch64.tar.bz2,
it is v1.5.0 now, I'll keep fellow latest release.

Once it merged, we can have canary and release build for termux just like all other platforms.

@shawn111 shawn111 force-pushed the termux branch 3 times, most recently from ed4faf1 to 5780f8f Compare August 7, 2025 06:49
@shawn111 shawn111 changed the title fix: goose-mcp support termux fix: goose support android termux Aug 7, 2025
@shawn111 shawn111 changed the title fix: goose support android termux feat: support android (termux) Aug 11, 2025
@shawn111

This comment was marked as outdated.

@shawn111 shawn111 marked this pull request as draft August 11, 2025 02:28
jackye1995 pushed a commit to lancedb/lancedb that referenced this pull request Aug 12, 2025
Hi,

I'm try to build goose (rely on lancedb) for android/termux.
Found out some depsendencies need to update. 

block/goose#3890

0.2.4 update
- nmathewson Fix cross-compilation between windows and non-windows.

https://github.com/shawn111/lancedb/actions/runs/16871317860
windows and linux build passed

https://github.com/shawn111/lancedb/actions/runs/16871859398

Signed-off-by: Shawn Wang <shawn111@gmail.com>
@shawn111 shawn111 marked this pull request as ready for review August 22, 2025 00:56
@michaelneale
Copy link
Collaborator

woah @shawn111 this is cool!

@michaelneale michaelneale self-assigned this Aug 22, 2025
with:
name: goose-termux-${{ matrix.architecture }}
path: goose-termux-${{ matrix.architecture }}.tar.bz2
release:
Copy link
Collaborator

Choose a reason for hiding this comment

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

never quite sure on how to test changes to release workflows, or additions - ideas?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Maybe I need remove this part, it for my github repo to create the termux release.

https://github.com/shawn111/goose/releases/tag/termux

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I remove the release part, and make the trigger rule as same as canary.yml. Once the PR merge, it will trigger build but we need download from github build result.

Once it is stable, we need add needs: build-cli-termux: in canary.yml and release.yml. Otherwise, users will hard to find where to download.

- name: Upload CLI artifact
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # pin@v4
with:
name: goose-termux-${{ matrix.architecture }}
Copy link
Collaborator

Choose a reason for hiding this comment

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

should this have android explicitly in the name?

Also, there are quite a few downloads, wondering where is best place to store the termux versions, as they wont' be the mainstream ones people look for (how would one usually get tools for android?)

Copy link
Contributor Author

Choose a reason for hiding this comment

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

How about naming the artifacts either:

goose-android-termux-${{ matrix.architecture }}, or
goose-${{ matrix.architecture }}-android-termux (to match the style of goose-aarch64-unknown-linux-gnu)?

The reason I suggest including termux in the name is that Termux is not just a terminal emulator—it provides a full Linux environment. If we use only android in the name, people might get confused.

The Termux package repo: https://github.com/termux/termux-packages (lots of Rust packages there).
But only Goose can provide a canary version for Termux: https://github.com/block/goose/releases/tag/canary
.

Not many upstream projects ship Termux builds directly, because the GitHub Action setup is still relatively new and not very easy to follow. Example snippet:

container:
  image: termux/termux-docker:${{ matrix.architecture }}
  volumes:
    - /tmp/node20:/__e/node20
steps:
  - run: /entrypoint.sh pkg install -y nodejs-lts

I made three commits in this PR:

  • I think the first commit is clean and simple: b0dc430

The second and third commits are a bit messy, to be honest.
Since Termux isn’t a major platform, I expect my patch won’t affect other platforms.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

pkg search goose                                                (main) 13:47
...
Full Text Search... Done
goose/stable 3.24.3 aarch64
  A database migration tool. Supports SQL migrations and Go functions.

There is another goose(db) in termux repo.
How about create a block-goose in termux repo?

Copy link
Collaborator

Choose a reason for hiding this comment

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

@shawn111 right - so is it possible that goose can publish "block-goose" to termux repo - and not have it on the goose download page? (would it be useful on the goose download page, or with termux to people 90% of the time get it from within termux? not sure how that works).

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@michaelneale ok. could we still keep "feat: linux computer control for android"? I this part is in goose.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Copy link
Contributor Author

@shawn111 shawn111 Aug 26, 2025

Choose a reason for hiding this comment

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

Let's make this PR just for one commit. I can create github action after this PR and #4344

Copy link
Collaborator

Choose a reason for hiding this comment

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

How you think about it? Could goose provide android build? If it is good, I will add the github action workflow back.

I am not against that, I think we should mark it somehow as experimental. I'd love to give this a try personally, but I don't know how much time the core team has to support this

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@DOsinga I can keep github action in my personal repo first, but if #3890 #4344 can merge into goose code base will be better. Then people can build android build without any extra patches.

Copy link
Collaborator

Choose a reason for hiding this comment

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

sounds good!

@shawn111 shawn111 changed the title feat: support android (termux) feat: linux computer control for android (termux) Aug 25, 2025
@michaelneale
Copy link
Collaborator

I can't seem to test this locally - weird merge conflicts, but I think the change in code looks ok

@shawn111
Copy link
Contributor Author

I can't seem to test this locally - weird merge conflicts, but I think the change in code looks ok

should I rebase main?

Android platform detection as Linux

Signed-off-by: Shawn Wang <shawn111@gmail.com>
Signed-off-by: Shawn Wang <shawn111@gmail.com>
@shawn111
Copy link
Contributor Author

rebase main

@michaelneale
Copy link
Collaborator

thanks, should be good to go when green

@michaelneale michaelneale merged commit c0556c9 into block:main Aug 28, 2025
10 checks passed
michaelneale added a commit that referenced this pull request Aug 28, 2025
* main: (38 commits)
  feat: linux computer control for android (termux) (#3890)
  feat: Added scroll state support for chat-session-list navigation (#4360)
  docs: typo fix (#4376)
  blog: goose janitor (#4131)
  Fix eleven labs audio transcription and added more logging (#4358)
  feat: re-introduce session sharing (#4370)
  remove duplicate blog post (#4369)
  fix focus ring under form submits (#4332)
  Trigger docs deployment
  update tetrate blog date to today (#4368)
  tetrate signup: blog/launch post (#4313)
  Implement graceful recipe error handling with filename display (#4363)
  docs: airgapped operation by bypassing hermit for desktop app (#4063)
  remove Ollama card from welcome screen (#4348)
  feat: initial implementation of extension malware check (#4272)
  Add Tetrate Agent Router Service to Provider Registry (#4354)
  Goose Simple Compact UX (#4202)
  Refactor Extensions Install Modal (#4328)
  fix: url path trailing slash for custom-providers (#4345)
  docs: update available and onboarding providers list (#4356)
  ...
@shawn111 shawn111 deleted the termux branch August 29, 2025 00:51
lifeizhou-ap added a commit that referenced this pull request Aug 29, 2025
* main: (40 commits)
  new recipe to lint-check my code (#4416)
  removing a leftover syntax error (#4415)
  Iand/updating recipe validation workflow (#4413)
  Iand/updating recipe validation workflow (#4410)
  Fix (Ollama provider): Unsupported operation: streaming not implemented (#4303)
  change databricks default to claude sonnet 4 (#4405)
  Iand/updating recipe validation workflow (#4406)
  Add metrics for recipe metadata in scheduler, UI, and CLI (#4399)
  Iand/updating recipe validation workflow (#4403)
  making small updates to recipe validation workflow (#4401)
  Automate OpenRouter API Key Distribution for External Recipe Contributors (#3198)
  Enhance `convert_path_with_tilde_expansion` to handle Windows (#4390)
  make sure all cookbook recipes have a title and version, but no id (#4395)
  Nest TODO State in session data (#4361)
  Fast model falls back to regular (#4375)
  Update windows instructions (#4333)
  feat: linux computer control for android (termux) (#3890)
  feat: Added scroll state support for chat-session-list navigation (#4360)
  docs: typo fix (#4376)
  blog: goose janitor (#4131)
  ...
dorien-koelemeijer pushed a commit to dorien-koelemeijer/goose that referenced this pull request Sep 2, 2025
Signed-off-by: Shawn Wang <shawn111@gmail.com>
Signed-off-by: Dorien Koelemeijer <dkoelemeijer@squareup.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants