pub enum Command {
Init(InitArgs),
Auth(AuthArgs),
Sync(SyncArgs),
Mcp(McpArgs),
Update(Box<UpdateArgs>),
Delete(DeleteArgs),
Insert(Box<InsertArgs>),
Query(QueryArgs),
Schema(SchemaArgs),
}Variants§
Init(InitArgs)
Create the data directory and initialize the configuration files.
This is the first command you should run when setting up the tiller CLI. You need to get a few things ready beforehand.
-
Decide what directory you want to store data in and pass this as –tiller-home. By default, It will be $HOME/tiller. If you want it somewhere else then you should specify it.
-
Get the URL of your Tiller Google Sheet and pass it as –sheet-url.
-
Set up your Google Sheets API Access credentials and download them to a file. You will pass this as –api-key. Unfortunately, this is a process that requires a lot of steps. Detailed instructions have been provided in the GitHub documentation, please see https://github.com/webern/tiller-sync for help with this.
Auth(AuthArgs)
Authenticate with Google Sheets via OAuth.
Sync(SyncArgs)
Upload or Download Transactions, Categories and AutoCat tabs to/from your Tiller Sheet.
Mcp(McpArgs)
Run as an MCP (Model Context Protocol) server for AI agent integration.
This launches a long-running process that communicates via JSON-RPC over stdin/stdout. MCP clients (like Claude Code) launch this as a subprocess.
Update(Box<UpdateArgs>)
Update a transaction, category, or autocat rule in the local database.
Delete(DeleteArgs)
Delete a transaction, category, or autocat rule from the local database.
Insert(Box<InsertArgs>)
Insert a new transaction, category, or autocat rule into the local database.
Query(QueryArgs)
Execute a read-only SQL query against the local SQLite database.
The query interface enforces read-only access. Any write attempt will be rejected. Result sets can be large - use LIMIT clauses to control output size.
Schema(SchemaArgs)
Display database schema information.
Returns tables, columns, types, indexes, foreign keys, column descriptions, and row counts.
Trait Implementations§
Source§impl FromArgMatches for Command
impl FromArgMatches for Command
Source§fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
fn from_arg_matches(__clap_arg_matches: &ArgMatches) -> Result<Self, Error>
Source§fn from_arg_matches_mut(
__clap_arg_matches: &mut ArgMatches,
) -> Result<Self, Error>
fn from_arg_matches_mut( __clap_arg_matches: &mut ArgMatches, ) -> Result<Self, Error>
Source§fn update_from_arg_matches(
&mut self,
__clap_arg_matches: &ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches( &mut self, __clap_arg_matches: &ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§fn update_from_arg_matches_mut<'b>(
&mut self,
__clap_arg_matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut<'b>( &mut self, __clap_arg_matches: &mut ArgMatches, ) -> Result<(), Error>
ArgMatches to self.Source§impl Subcommand for Command
impl Subcommand for Command
Source§fn augment_subcommands<'b>(__clap_app: Command) -> Command
fn augment_subcommands<'b>(__clap_app: Command) -> Command
Source§fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
fn augment_subcommands_for_update<'b>(__clap_app: Command) -> Command
Command so it can instantiate self via
FromArgMatches::update_from_arg_matches_mut Read moreSource§fn has_subcommand(__clap_name: &str) -> bool
fn has_subcommand(__clap_name: &str) -> bool
Self can parse a specific subcommandAuto Trait Implementations§
impl Freeze for Command
impl RefUnwindSafe for Command
impl Send for Command
impl Sync for Command
impl Unpin for Command
impl UnwindSafe for Command
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more