Getting started
Binarius AI Android Code Studio is a complete Java IDE (Eclipse-based, with Java, Maven and Git support) plus an AI Assistant tab that connects to coding agents: Claude Code, Codex, Gemini CLI, GitHub Copilot CLI, or a local model that runs on your computer.
Install
- Windows: run
binarius-ai-android-code-studio-1.0.0-setup.exe. Keep Install local AI (Ollama) ticked to work offline. A Java runtime is included; nothing else is needed. - macOS / Linux: unpack the archive and start
BAACS. Local AI is installed automatically when you pick the Local agent.
First run in three steps
- Choose a workspace folder (where your projects live).
- On the welcome page, click Set up local AI (offline) or Sign in to an agent.
- In the AI Assistant tab, type what you want, e.g. Create a project that demonstrates OOP concepts with tests, and press Ctrl+Enter.
Android apps
Ask for an app in plain words, for example "Create an Android notes app: a list of notes, add and delete a note, with unit tests". The agent creates an Android project from a tested template and writes the screens and the logic:
| Part | What is used |
|---|---|
| Language and UI | Kotlin and Jetpack Compose (Material 3). Say "with XML layouts" or "in Java" if you want those instead. |
| Build | Gradle (Kotlin DSL) with the Gradle wrapper, Android Gradle plugin 9.4, compileSdk 37, minSdk 26. The project also opens in Android Studio. |
| Tests | Local unit tests with JUnit 4 in app/src/test, run on your computer without a device. Keep app logic in plain Kotlin classes so it can be tested. |
| Result | The debug APK in app/build/outputs/apk/debug. |
assembleDebug and testDebugUnitTest. Compile errors (Kotlin, Java, resources) and failing tests go back to the agent to fix, and it asks for unit tests when there are none. The agent can also run other Gradle tasks (e.g. lint).Not included: the emulator, the visual layout editor and on-device debugging. Open the project folder in Android Studio for those; both work on the same files, and the agent's changes appear there.
Android SDK setup
On first start the IDE shows Google's Android SDK License Agreement. When you accept it, the IDE installs, per user and without administrator rights:
- the Android SDK command-line tools and platform-tools (adb) into
~/.baacs/android-sdk(or uses your SDK whenANDROID_HOMEpoints to one), - Gradle 9.8 into
~/.baacs/gradle, used to add the Gradle wrapper to new projects.
The first build of an app then downloads the Android platform and build tools it needs (a few hundred MB, once). Downloads are checked against the checksums Google and Gradle publish. If you decline the license you can still write code; set it up later from the welcome page card Set up Android SDK.
Running on a phone
When a build succeeds, the AI tab offers Install on device and Show APK.
- On the phone: Settings > About phone, tap Build number seven times, then Settings > Developer options > turn on USB debugging.
- Connect the phone with USB and allow the computer when the phone asks.
- Click Install on device; the IDE installs the APK with adb. Open the app on the phone.
Built-in Android Emulator
Try the app before it goes anywhere: after a successful build choose Run in emulator (or AI tab ⋮ > Run in Emulator). The first time, the IDE shows the emulator's licenses and downloads Google's Android Emulator and an Android 37 phone image (about 2 GB, once); it creates the virtual phone BAACS_Phone (Pixel 8), starts it in its own window, installs the app and opens it. After the agent changes the code, choose Run again. Stop Emulator closes it.
The emulator needs hardware virtualization: on Windows turn on virtualization in the BIOS and the Windows feature Windows Hypervisor Platform; on Linux, KVM. The IDE checks this and tells you what is missing.
Publishing to Google Play (testing tracks)
AI tab ⋮ > Publish to Google Play... builds a signed release bundle (AAB) and releases it to internal testing, closed testing (track alpha) or one of your custom closed tracks. Production releases stay in Play Console.
- Once, in Play Console: create the app. For a brand-new app, Google requires the very first bundle to be uploaded by hand in Play Console (the IDE can build it: publish once as a draft and download, or use the AAB in
app/build/outputs/bundle/release). - Once, in Google Cloud: enable the Google Play Android Developer API, create a service account and download its JSON key. In Play Console > Users and permissions, invite the service account's e-mail with permission to release apps to testing tracks.
- In the dialog, Import service account key. It is stored encrypted in the IDE's secure storage; delete the downloaded file afterwards.
- Upload key: tick Create a new upload key for the first release (a PKCS12 keystore in
~/.baacs/keys), or choose your existing keystore. Back up the keystore and its password: every update must be signed with it. - Choose the track, whether the release is available to testers or a draft, and optionally a release name, version name, "What's new" text and tester Google Groups. Click Build and publish and confirm.
versionCode in app/build.gradle.kts to one more than the highest version on Play, runs bundleRelease signed with your upload key (the passwords are passed to Gradle privately, never written into the project), uploads the bundle and releases it on the track in one Play "edit". If any step fails, the edit is discarded, so nothing half-done reaches Play Console.Only you start a publish; the AI agents cannot publish. Testers join with the opt-in link shown in Play Console for the track.
Welcome page
Shown when the IDE starts. Cards open the AI Assistant, set up local AI, sign in to an agent, create or import projects and open settings. Clicking an example prompt puts it into the AI tab.
Workspaces and projects
A workspace is a folder with your projects. The Project box in the AI tab chooses where the agent works: one project, or (workspace folder) to let the agent create new projects. Projects the agent creates are imported and selected automatically; your next message continues on them.
The AI Assistant tab
| Control | What it does |
|---|---|
| Agent | Which coding agent works for you. The status in brackets shows ready, not signed in or not installed. |
| Status dot | Grey = not started, yellow = starting or working, green = ready, red = an error happened. |
| Project | Where the agent works (see Workspaces). |
| Git mode | How changes reach Git for this project: Manual, Branch or Pull request (see Git). |
| Auto-approve | On: the agent writes files and runs its tools without asking. Off: every step asks and every change is shown for review (see Approvals). |
| Model / Options… | The agent's model and other settings such as reasoning effort or temperature (see Models). |
| ⓘ | Opens this guide at the relevant section. |
| Input box | Your request. Ctrl+Enter sends. |
| Send / Stop | Send the request; Stop cancels the running reply and rejects pending changes. |
| New chat | Saves the current chat and starts a fresh conversation (the agent restarts). |
| History… | Opens an earlier chat of this project; your next message continues it (see Chat history). |
| Progress bar | Shows what is happening with a percentage: starting, working (steps done), checking, running. |
The transcript shows your messages, the agent's replies, each tool call (e.g. Write Main.java [done]) and notices from the IDE (ℹ information, ⚠ problems, with buttons to fix them). The plan pane below the transcript shows the agent's plan when it sends one.
Agents and sign-in
| Agent | Needs | Sign in |
|---|---|---|
| Local (Ollama) | Nothing online after setup | No sign-in; see Local AI |
| Claude Code | Node.js 22+, Claude subscription or API key | ⋮ > Sign in to Agent opens a terminal for the Claude login, or set ANTHROPIC_API_KEY |
| Codex | Node.js 22+, ChatGPT account or API key | Sign in to Agent opens the browser for ChatGPT, or set OPENAI_API_KEY |
| Gemini CLI | Node.js 20+, Google account or API key | Sign in to Agent opens Gemini in a terminal: choose Login with Google; or set GEMINI_API_KEY |
| GitHub Copilot CLI | Node.js, GitHub Copilot plan | Sign in to Agent runs copilot login (browser and one-time code), or set GH_TOKEN |
Node.js is set up automatically: if the computer has no Node.js 22+, the IDE downloads the latest Node.js LTS from nodejs.org into ~/.baacs/node (per user, no administrator rights, the system is not changed), so you only sign in to your agent. Online agents are downloaded on first use (via npx) and run under their publishers' own terms. Your prompts and the files they read are sent to that provider.
NAME=value per line). Keys are kept in the operating system's secure storage. Add your own agent: Add… with any command that speaks the Agent Client Protocol (ACP).Models and options
The Model box lists the models the selected agent offers; Options… holds its other settings. The list is read when you select the agent (it starts briefly in the background) and your choice is remembered per agent.
| Agent | Model list | Other options |
|---|---|---|
| Claude Code | e.g. Default, Sonnet, Opus, Haiku | Effort, mode, fast mode |
| Codex | OpenAI models | Reasoning effort, mode |
| Gemini CLI | Auto and Gemini models | – |
| Local | Models installed in Ollama | Temperature |
| GitHub Copilot CLI | Not published by Copilot; set under Options > Model (or Auto on plans without model choice) | Mode, Allow all |
Temperature (local models)
How much randomness the model uses: 0 exact and repeatable (fixing errors), 0.2 recommended for code, 0.5 more varied ideas, 0.8–1 creative but more mistakes (not for code).
Local AI (offline)
The local agent runs a model on your computer with Ollama: code never leaves the machine and no account is needed.
~/Applications, Linux ~/.local/share/baacs/ollama), starts it and downloads the model with progress (first time only, several GB).- Default model:
qwen2.5-coder:14b(about 9 GB; 16 GB RAM, a GPU with 8 GB+ recommended). Smaller PCs: chooseqwen2.5-coder:7bin the Model box. - Company model server: set the endpoint in Preferences > Local agent, or by admin policy.
- Settings: Preferences > Local agent (endpoint, model, temperature, max tool calls, max tokens, request timeout, Test connection).
Writing requests
- Say what you want and, if it matters, how: Create a library management system in core Java with JUnit tests; Add a REST endpoint to delete a book, with a test.
- Name a framework if you want one: … with Spring Boot and H2, … with Hibernate.
- Follow-ups work on the same project: add an interface Payable and use it in Main.
- Ask questions too: Explain this project, Why does this test fail?
The first message on a project with code makes the agent read it first and summarise it before working, so it keeps your packages, naming and libraries.
Framework and Java version
The agent reads the request first, then decides:
- You name a framework (Spring Boot, Hibernate, Quarkus, Jakarta EE…) → it uses exactly that.
- Plain programs, algorithms, OOP and data-structure demos → core Java only.
- The request needs a framework (REST API, web app, database) but names none → if one clearly fits it says which and starts; if several fit it asks you which one before creating files.
book-api) with a matching package (e.g. com.bookapi).Build, test, run and fix
After every reply that changed files, the IDE checks the work itself:
- Build the changed projects and collect compile errors.
- Tests: if there are none, the agent is asked to write JUnit 5 tests; then they are run.
- Main class: if a runnable program has none, the agent is asked to add one; a run configuration is created so you can run it with the Run button.
- Run the program and read its output (servers that keep running count as started).
- Anything failing is sent back to the agent with the errors and log, up to 5 fix rounds.
The transcript ends with ✔ Done (build clean, tests passed, program ran) or with what is still failing.
Approvals and reviewing changes
- Auto-approve on (header checkbox): the agent works without asking, like an autonomous mode. Every step is still recorded in the audit log.
- Auto-approve off: each tool call asks Allow once / Always allow for this session / Deny, and each file change opens a Compare editor. The pending changes list in the AI tab has Review, Apply, Reject and Apply all. You can edit the change before applying it.
- Allow read-only tool calls without asking (Preferences) skips the question for reading and searching.
- An admin can force review of every change and block shell commands by policy.
Switching agents and follow-ups
Change the Agent box at any time. The new agent starts on its next message, first analyses the existing code and is told which agent worked on it before and what it was asked. Use Use my last message with … in the notice to resend your request to the new agent.
Git and GitHub
| Mode | What happens |
|---|---|
| Manual | The agent only edits files; you commit yourself (Team menu or Git Staging view). |
| Branch | The work goes to an ai/<task> branch; after a verified task you get Commit and Discard buttons. |
| Pull request | Like Branch, then Push and open pull request pushes the branch and opens a GitHub pull request (draft by default). |
Chat history
Every chat is saved per project: your messages, the agent's replies, tool calls and IDE notices, with the time of each entry and secrets removed.
<project>\.baacs\chats\<time>-<agent>.md (readable) and .jsonl. Settings: Preferences > Audit log > Save every chat per project, Chats folder (${project}, ${workspace}; a shared folder gets one subfolder per project).Audit log
A record of AI activity for teams and compliance: sessions, prompts (secrets removed; optional), tool calls, approvals, file changes (paths, hashes and line counts, never file contents), verification results, model changes and Git actions.
<workspace>\.baacs\audit\yyyy-MM-dd.jsonl. Export for managers: File > Export AI Audit Log (CSV), or ⋮ > Export Audit Log, or the button in Preferences. Settings: Preferences > Audit log (on/off, include prompt text, folder, days to keep).Admin policy
Administrators control the IDE for a team with a policy file baacs-policy.json: allowed agents, default agent, enforced Git mode, local model server, whether shell commands are allowed, forced review, audit and chat history settings, updates. Locked settings appear greyed out with Set by your organization's policy.
BAACS.exe, or -Dbaacs.policy=<file or https URL> in BAACS.ini, or the installer option /POLICYURL=https://…. An invalid policy falls back to safe defaults and shows why.Evaluation and license keys
Every installation can be used free for 28 days from its first start (the AI tab and the welcome page show the days left). After that a license key is required: at startup the IDE asks for it (Activate or Exit). Reinstalling does not restart the evaluation.
A key (BAACS1.…) names the licensee, the number of seats and the expiry date. It is checked on your computer; no internet connection is needed. Request one at the Binarius AI Android Code Studio website (License page).
Preferences
Agents table
The coding agents available in the AI tab's Agent box.
| Column | Meaning |
|---|---|
| Name | Name shown in the Agent box. (built-in) marks agents that ship with the product; (not allowed by policy) marks agents your admin has disabled. |
| Command | The command that starts the agent. Built-in online agents run through Node.js npx with a pinned version (e.g. npx -y @google/gemini-cli@0.61.0 --acp). The Local agent is built in and configured in the fields below. |
| Environment | How many environment variables (such as API keys) are set for this agent, e.g. 2 variables; empty when none. Values are not shown and are kept in secure storage. |
| Button | What it does |
|---|---|
| Add… | Adds a custom agent: a name, the command line of any program that speaks the Agent Client Protocol (ACP), and optional environment variables. It then appears in the Agent box. |
| Edit… | Changes the selected agent: its command (e.g. a newer version, or --model <name>) and its environment, one NAME=value per line, e.g. ANTHROPIC_API_KEY=…, OPENAI_API_KEY=…, GEMINI_API_KEY=…, GH_TOKEN=…. Double-clicking a row does the same. |
| Remove | Removes a custom agent. Built-in agents cannot be removed (an admin policy can hide them). |
Claude Code, Gemini CLI, Codex and Copilot CLI need Node.js; the IDE installs it automatically when it is missing. Sign in once with each agent's own login (⋮ > Sign in to Agent in the AI tab) or put its API key into the agent's environment.
Local agent
Settings of the built-in local agent, which works with Ollama, LM Studio, vLLM or a company server with an OpenAI-compatible API.
| Field | Default | Meaning and advice |
|---|---|---|
| Endpoint | http://localhost:11434/v1 | Address of the model server's OpenAI-compatible API. The default is Ollama on this computer. For a company server use its https address; an API key for it goes into the Local agent's environment as BAACS_LOCAL_API_KEY=…. |
| Model | qwen2.5-coder:14b | The model used by default. Use a coding model that supports tool calling. qwen2.5-coder:7b for PCs with less than 16 GB RAM or no GPU. It is downloaded automatically on first use. You can also switch per chat in the AI tab's Model box. |
| Temperature | 0.2 | Randomness of the answers: 0 exact, 0.2 recommended for code, 0.5 more varied, 0.8–1 creative but error-prone. |
| Max tool calls per request | 25 | Most steps (file writes, builds, tests) the local agent may take for one message. Raise it for big tasks; it stops with a message when reached. |
| Max tokens per reply | 4096 | Longest answer the model may write at once. Larger values allow bigger files but take longer. |
| Request timeout (s) | 600 | How long to wait for one answer from the model. Slow computers or large models may need more. |
| Test connection | – | Checks that the endpoint answers, lists the models it has, and says if the chosen model still needs to be downloaded. |
Environment for all agents
Variables given to every agent, one NAME=value per line, for example HTTPS_PROXY=http://proxy.company:8080 or NODE_EXTRA_CA_CERTS=C:\certs\company.pem. Kept in secure storage. An agent's own environment (Edit…) overrides a variable with the same name.
Approvals
| Option | Default | Meaning |
|---|---|---|
| Review every file change before it is written (recommended) | On | Each change opens a Compare editor with Apply and Reject when Auto-approve is off in the AI tab. With Auto-approve on, changes are written directly (unless a policy forces review). |
| Allow read-only tool calls (read, search) without asking | Off | When on, agents may read and search files without a permission question; writes and commands still ask. |
IDE tools
| Option | Default | Meaning |
|---|---|---|
| Let agents use IDE tools | On | Agents can create IDE projects, build, run Maven and JUnit, and read problems and logs the same way you see them. Off: agents work with files only. |
| After the agent changes files, build and run tests; ask it to fix failures | On (5 rounds) | The verified changes loop: build, tests, main class, run, and automatic fix rounds. |
| Java version of new projects | 21 | 17, 21 or 25. Projects the agents create compile for this Java release and use only its features. 17 and 21 run with the included Java; 25 needs a JDK 25 under Window > Preferences > Java > Installed JREs. |
| Show the welcome page when the IDE starts | On | Opens the welcome page at startup. |
| Send an anonymous installation count once a day | On | Lets Binarius count installations: a random id, the version, the OS and whether the copy is in evaluation or licensed. No code, prompts, files or personal data. Turn it off here; an admin policy with "telemetry": false turns it off for everyone. |
Git and GitHub
The Git mode itself (Manual, Branch or Pull request) is chosen per project in the AI tab.
| Field | Meaning |
|---|---|
| GitHub token | Needed only for Pull request mode. Create a fine-grained token on GitHub (Settings > Developer settings) with Contents and Pull requests read and write on the repository. Kept in secure storage; shows not set until entered. |
| GitHub API URL | Leave automatic for github.com. For GitHub Enterprise Server: https://<host>/api/v3. |
| Open pull requests as drafts | On: pull requests are opened as drafts for review before merging. |
| Add a Co-authored-by trailer for the AI agent to commits | Off: commits carry only the AI-Agent trailer. On: also a Co-authored-by line naming the agent. |
Audit log and chat history
| Field | Default | Meaning |
|---|---|---|
| Keep an audit log of AI activity | On | Writes the audit log (one JSONL file per day). |
| Include prompt text | On | Prompt text is stored with secrets removed. Off: only its length and a hash. |
| Folder | ${workspace}/.baacs/audit | Where the audit files go; ${workspace} is the workspace folder. Can be a shared network folder. |
| Keep for (days) | 180 | Older daily files are deleted at startup. |
| Save every chat per project | On | Keeps the chat history. |
| Chats folder | ${project}/.baacs/chats | ${project} is the project folder. A folder without it (e.g. a shared drive) gets one subfolder per project. |
| Export audit log (CSV)… | – | Saves all kept events as a spreadsheet file. |
Updates
| Option | Meaning |
|---|---|
| Check for updates on startup | Looks for a newer version on the configured update site when the IDE starts. |
| Channel | stable for released versions, beta for previews. |
License
| Item | Meaning |
|---|---|
| Status line | Evaluation days left, or the licensee and expiry of your key, or that the evaluation has ended. |
| Enter license key… | Paste the key you received (starts with BAACS1.). Checked offline. |
| Remove key | Removes the key from this computer. |
Where things are stored
| What | Where |
|---|---|
| Chat history (both sides) | <project>\.baacs\chats\ |
| Audit log | <workspace>\.baacs\audit\ |
| Agent technical logs (also in the Console view) | <workspace>\.baacs\logs\<agent>-<date>.log |
| IDE error log | <workspace>\.metadata\.log |
| Settings | <workspace>\.metadata\.plugins\org.eclipse.core.runtime\.settings\com.baacs.core.prefs |
| API keys and tokens (encrypted) | %USERPROFILE%\.eclipse\org.eclipse.equinox.security\secure_storage |
| Local models | Ollama's model folder (%USERPROFILE%\.ollama) |
Add .baacs/ to .gitignore if chats should not be committed with the project.
Menus and shortcuts
| Where | What |
|---|---|
| Window > AI Assistant | Show the AI tab |
| Help > Welcome to Binarius AI Android Code Studio | Welcome page |
| Help > Binarius AI Android Code Studio User Guide | This guide |
| File > Export AI Audit Log (CSV) | Audit export |
| AI tab ⋮ menu | Sign in, Preferences, Switch Workspace, Set Up Local AI, User Guide, Export Audit Log |
| Ctrl+Enter | Send the request |
| Run button | Run the program the agent built (run configuration) |
Updates
If your company or Binarius provides an update site, the IDE checks it at startup and offers updates (Preferences > Updates: on/off, stable or beta). Help > Check for Updates checks manually.
Troubleshooting
| Problem | What to do |
|---|---|
| Agent shows not signed in | ⋮ > Sign in to Agent, or set its API key in Preferences. |
| Agent shows not installed | The IDE installs Node.js automatically (progress under the chat). If that fails (no internet, proxy), install Node.js 22+ from nodejs.org and restart the IDE. |
| Local model is slow or times out | Pick a smaller model (qwen2.5-coder:7b) or raise Request timeout in Preferences > Local agent. |
| Model list shows only Default | Select the agent again after signing in; the list is read in the background. |
| Project not visible after the agent created it | It is imported automatically after the reply; otherwise File > Import > Existing Maven Projects. |
| Not done after fix rounds | Read the errors in the transcript and send a message to continue, or be more specific. |
| An agent fails to start | See its log in the Console view or <workspace>\.baacs\logs. |
© 2026 Binarius Systems Private Limited · Based on Eclipse · Eclipse Public License 2.0