MCPcopy Index your code
hub / github.com/claudiodangelis/banco

github.com/claudiodangelis/banco @0.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.1.0 ↗ · + Follow
123 symbols 304 edges 18 files 112 documented · 91% updated 22d ago0.1.0 · 2020-01-28★ 58
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Banco

Note: it's really basic

Banco Management System, or simply Banco, is an opinionated project management tool for the command line that helps you organize notes, tasks, bookmarks and documents for your projects.

Banco objects (notes, tasks, bookmarks, etc) are stored in the filesystem, implemented as plain text files and folders within the root of the project, so you won't need to install or run any database or server. This enables you to easily create archives and backups, move projects around the filesystem, use command line tools, or keep track of changes by using version control.

Installation

You can install Banco with Go:

go get github.com/claudiodangelis/banco

or by downloading the latest binary release.

Configuration

Banco needs almost no configuration to get started. You only need to make sure that the two following environment variables are set:

  • $EDITOR
  • $BROWSER

Banco will use the first to open plain text files (notes, tasks), and the second for the bookmarks.

Modules

Banco's features are built as modules, there are modules available for management of: - documents - bookmarks - notes - tasks

and, soon, secrets.

A typical Banco project looks like this on the filesystem:

16:14:25 /tmp/banco-test
$ tree -QA
.
├── "bookmarks"
│   ├── "AWS"
│   │   └── "instances"
│   └── "github page"
├── "documents"
├── "notes"
│   ├── "My First Note"
│   └── "ideas"
│       ├── "discarded"
│       │   └── "code repositories"
│       └── "secrets management"
└── "tasks"
    ├── "backlog"
    │   └── "Write README"
    ├── "doing"
    │   └── "Take screenshots"
    └── "done"
        └── "Implement modules"

10 directories, 8 files

The above, in Banco, is rendered like this:

Root:

root

Notes:

notes

Tasks:

tasks

Notes

Notes are just plain text files stored in the notes folder. If you set a label for the note, it will be implemented as a subfolder of the notes folder. When opening a note with banco, the $EDITOR value will be used to open the file.

Tasks

There are two ways to represent a task: a plain text file, or a folder of files. "Tasks" module has no concept of labels, instead it uses "statuses". First-level subfolders will be considered statuses of the tasks. When you create a new task, you will be asked which one you want to create it into. By default, Banco creates backlog, doing, done. When opening a task with Banco, the $EDITOR value will be used to open the file (or the folder).

Bookmarks

Just like notes, bookmarks are plain text files whose content is an URL. You can group bookmarks by labels. When opening a bookmark with banco, the $BROWSER value will be used to open the URL.

Documents

Everything which cannot be organized as a note, task or bookmark is a document. When opening a document with Banco, the xdg-open program will be used to open the file.

Get started

After installing Banco, create an empty folder, enter it, then run banco init:

mkdir my-project
cd my-project
banco init

Banco will create the folder structure, and you will be ready to get started.

Command line interface

Banco uses a consistent command line interface. From the command line interface you can create, open, update, list and delete objects:

banco [command] [module]

For example:

  • Create a new note

    sh banco new note

    You will be able to enter the title of the note and, optionally, a label. If the label doesn't exist, you can create it from there:

    newnote

  • Update a task

    sh banco update task

    After choosing the task you want to update, you will be able to update its attributes:

    updatetask

Available commands:

Command Argument Description
init Initializes a new Banco project
modules List available modules
notes Shows the root of the notes module. After choosing a note, you can choose what to do with it: open, update, delete
tasks Shows the root of the tasks module. After choosing a task, you can choose what to do with it: open, update, delete
bookmarks Shows the root of the bookmarks module. After choosing a bookmark, you can choose what to do with it: open, update, delete
documents Shows the root of the documents module. After choosing a document, you can choose what to do with it: open, update, delete
new [module] Shows the "create" view for the module
update [module] Shows the "update" view for the module
list [module] Lists modules' items
delete [module] Shows the "delete" view for the module
open [module] Shows the "open" view for the module
update [module] Shows the "update" view for the module
help Prints a summary of available commands

Credits

Banco is created by Claudio d'Angelis. The name "Banco" is a tribute to Banco Del Mutuo Soccorso, the best italian progressive rock band of all times.

Extension points exported contracts — how you extend this code

Module (Interface)
Module for banco [4 implementers]
module/module.go

Core symbols most depended-on inside this repo

Name
called by 16
module/module.go
Singular
called by 9
module/module.go
chooseItem
called by 7
cmd/banco.go
Aliases
called by 6
module/module.go
Path
called by 6
module/documents/documents.go
Path
called by 6
module/notes/notes.go
Path
called by 6
module/bookmarks/bookmarks.go
chooseModule
called by 6
cmd/banco.go

Shape

Method 60
Function 52
Struct 9
Interface 1
TypeAlias 1

Languages

Go100%

Modules by API surface

module/documents/documents.go23 symbols
module/tasks/tasks.go22 symbols
module/notes/notes.go22 symbols
module/bookmarks/bookmarks.go22 symbols
module/module.go13 symbols
ui/ui.go5 symbols
cmd/banco.go5 symbols
item/item.go3 symbols
util/util.go2 symbols
main.go1 symbols
cmd/update.go1 symbols
cmd/open.go1 symbols

For agents

$ claude mcp add banco \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page