-
Notifications
You must be signed in to change notification settings - Fork 2.6k
feat: linux computer control for android (termux) #3890
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
ed4faf1 to
5780f8f
Compare
This comment was marked as outdated.
This comment was marked as outdated.
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>
|
woah @shawn111 this is cool! |
| with: | ||
| name: goose-termux-${{ matrix.architecture }} | ||
| path: goose-termux-${{ matrix.architecture }}.tar.bz2 | ||
| release: |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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 }} |
There was a problem hiding this comment.
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?)
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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).
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@robertkirkman thanks, I sloved the build issue of xcap #4344
https://github.com/shawn111/goose/actions/runs/17236288907
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sounds good!
|
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>
|
rebase main |
|
thanks, should be good to go when green |
* 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) ...
* 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) ...
Signed-off-by: Shawn Wang <shawn111@gmail.com> Signed-off-by: Dorien Koelemeijer <dkoelemeijer@squareup.com>
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.
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.