Hacker Newsnew | past | comments | ask | show | jobs | submit | mike-bailey's commentslogin

Claude Opus and Gemini 2.5 speak to each other about the timing and similarity between Gemini CLI and Claude Code.

Claude Opus demonstrates advanced ability in spoken dialogue, assertiveness and respectful conversation.


I added a two way voice interface to Gemini CLI.

https://youtu.be/HC6BGxjCVnM?feature=shared&t=36

It's a FOSS MCP server I created a couple of weeks ago:

- https://getvoicemode.com

- https://github.com/mbailey/voicemode

# Installation (~/.gemini/settings.json)

{

  "theme": "Dracula",  

  "selectedAuthType": "oauth-personal",  

  "mcpServers": {  

    "voice-mode": {  

      "command": "uvx",  

      "args": [  

        "voice-mode"  

      ]  

    }  

  }  

}


openai-proxy connects the many open source models (ASR, TTS, LLMs) with OpenAI compatible APIs with existing tools that use OpenAI SDKs.

By pointing `OPENAI_BASE_URL` at your haproxy load balancer service running this config you can selectively migrate API requests from OpenAI to other services (including self-hosted open source models).


Last time BMA was on front page of HN was 1 Jan 2020 (for about 23 hours IIRC).

https://news.ycombinator.com/item?id=21921293


The __bma_read_filters function is designed to take all arguments and join them with | to create a grep pattern. Adding quotes around $@ would break this functionality because:

__bma_read_filters "arg1 arg2" arg3

With unquoted $@:

• Gets word split into: arg1 arg2 arg3 • Results in: arg1|arg2|arg3

With quoted "$@":

• Would be passed as: "arg1 arg2" arg3 • Results in: "arg1 arg2"|arg3

The unquoted version is correct here since the function is intentionally using word splitting to create individual grep pattern elements.

This is one of those cases where the normal "always quote your variables" rule has a valid exception because word splitting is part of the intended behavior.


They're good questions. I can tell you how I manage regions and accounts but am interested in learning how people think Bash-my-AWS might better support users in this regard.

The AWCLI, as well as SDKs all support grabbing Regions and account credentials from environment variables.

For Regions, I work tend to use the following aliases:

  alias au='export AWS_DEFAULT_REGION=ap-southeast-2'
  alias us='export AWS_DEFAULT_REGION=us-east-1'
  alias dr='export AWS_DEFAULT_REGION=ap-southeast-1'
I normally work in a single Region and swap when required by typing the 2 character alias.

To run a script or command (doesn't have to be Bash-my-AWS) across all Regions I use region-each:

  $ region-each stacks | column -t
  example-ec2-ap-northeast-1  CREATE_COMPLETE  2011-05-23T15:47:44Z  NEVER_UPDATED  NOT_NESTED  #ap-northeast-1
  example-ec2-ap-northeast-2  CREATE_COMPLETE  2011-05-23T15:47:44Z  NEVER_UPDATED  NOT_NESTED  #ap-northeast-2
  ...
  example-ec2-us-west-2       CREATE_COMPLETE  2011-05-23T15:47:44Z  NEVER_UPDATED  NOT_NESTED  #us-west-2
For AWS accounts, I type the name of the account and I'm in. For accounts using IDP (ldap/AD backed corporate logins) I generate aliases so I have tab completion and simple naming.

In accounts that are only setup to use AWS keys, I use aliases that export credentials kept in GPG encrypted files. Last time I looked, AWS docs suggested keeping these long lives credentials in plaintext files readable by your account. That's asking for trouble IMO, especially if they're kept in a known location that a compromised node library could exfiltrate them from.

AWSCLI v2 beta includes support for SSO so it's probably a good time to look at how BMA could include support for auth.


I don't like to rely on my memory either! I forget the names of commands and use tab completion to list them.

You can just type bma[TAB][TAB] and it will list them all.

If you know the type of resource you are working with, you can use TAB completion to see it's commands:

  $ stack-
  stack-arn            stack-exports        stack-tag-apply
  stack-asg-instances  stack-failure        stack-tag-delete
  stack-asgs           stack-instances      stack-tags
  stack-cancel-update  stack-outputs        stack-tags-text
  stack-create         stack-parameters     stack-tail
  stack-delete         stack-recreate       stack-template
  stack-diff           stack-resources      stack-update
  stack-elbs           stack-status         stack-validate
  stack-events         stack-tag


AWSCLI backward compatibility has been so good, I've never had a Bash-My-AWS command fail due to a change.

AWS CLI v2 previews were released in Nov 19 and while this may contain some breaking changes, I wouldn't be surprised if all the commands BMA uses continue to work as normal.

https://aws.amazon.com/blogs/developer/aws-cli-v2-installers...


I have sometimes questioned whether I should be spending my personal time developing an open source tool so tied to a single companies services.

My reasons for continuing include:

- I prefer to use command line over ClickOps

- Using Bash-My-AWS makes me more effective at work

- The emergent UX is equally applicable to other services (e.g. bash-my-github, bash-my-spotify)

- The intrinsic satisfaction from creating

- Helping improve the experience for others


I looked, no one created packages with those 2 names that I could fine, although there are some clis for controlling spotify it seems. Were you referring to specific packages somewhere for github and spotify?


bash-my-github and bash-my-spotify are two things I've made a start on but are not public yet. They've been on the backburner for a while due to competing priorities.

I was able to write a simple command that returned all songs a friend and I had in common in our public playlists.

I forget the exact syntax but it was something roughly along the lines of:

  $ sort <(
      user-playlists alice | playlist-tracks 
      user-playlists bob | playlist-tracks
    ) | uniq --repeated


Thanks for the tool and reasons for building it. I will check it out tomorrow!


Thanks!

The intent has always been to enhance rather than replace AWCLI (which is an amazing tool!).

If you're ever wondering how a Bash-My-AWS command works, use `bma type` (it even supports tab completion for all the commands).

  $ bma type instances
  instances is a function
  instances () 
  { 
      local instance_ids=$(__bma_read_inputs);
      local filters=$(__bma_read_filters $@);
      aws ec2 describe-instances $([[ -n ${instance_ids} ]] && echo --instance-ids ${instance_ids}) --query "
          Reservations[].Instances[][
            InstanceId,
            InstanceType,
            State.Name,
            [Tags[?Key=='Name'].Value][0][0],
            LaunchTime,
            Placement.AvailabilityZone,
            VpcId
          ]" --output text | grep -E -- "$filters" | LC_ALL=C sort -b -k 6 | column -s' ' -t
  }


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: