A swiss army knife of commands and shell hacks, using @ as the prefix
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


README for @, also known as monkey-tail


@ is a swiss army knife for the *Nix user, and is self-contained and portable.


Well, I feel that it's nice to have a collection of simple commands in a
separate utility, rather than "polluting" the shell namespace.

You can hang @ on your belt, along with your shell, editor and your C compiler.


Copy @ into your usual directory for scripts(make sure it is in your $PATH), etc

Test if @ can run:
  $ @

If everything is ok, you should see:
  $ @
  Usage: @ <subcommand>
     or: @ list-commands
     or: @ help-on <subcommand>

Otherwise, if you see this:
  $ @
  bash: @: command not found

You need to add your scripts directory to your $PATH (via your .bashrc or .bash_profile). Assuming it's $HOME/tools:
  export PATH=$PATH:$HOME/tools:

Now that everything is set, explore.

Simply run:

	@ list-commands

For example, to show disk usage of the current directory:

 	@ disk-usage

Or, find the disk hogs in your downloads directory:

	@ disk-hogs ~/Downloads


@ can merge pieces of code into itself, to provide extra commands, etc.
Additionally, "externals" can then be updated from their source.

For example:

	@ external-add https://github.com/lmartinking/monkey-tail/raw/master/externals/hello-world

Will import the "hello-world" external, and all commands contained within will
be available. For instance:

	@ hello-world

To remove "hello-world", simply use:

	@ external-remove hello-world

If you have modified an external which is embedded into @, you can extract
the code using:

	@ external-code <external-name>

You can append code to an external using:

	@ external-append 

Creating Your Own External

An external is simply a kind of bash script with "# @" on the first line

Each command in @ is a bash function, prefixed with _ (underscore). For example:

	# @
	_my-command () {
	 echo "Hello there!"

Once merged into @ (using external-add <file>), can be accessed by:

	@ my-command

@ provides a few built in functions, and eventually there will be more.
Please do take a look at the source code!

For more examples of externals, take a look at:

	< http://github.com/lmartinking/monkey-tail/tree/master/externals >

By Who?

@ is written by Lucas Martin-King and licenced under the GPLv2