========== BEGIN FILE ==========
---
label: .\src\sspec\commands\tool.py
path: src/sspec/commands/tool.py
kind: file
content_format: fenced
fence: '````'
---
````
"""sspec tool command - builtin development tools."""

import click

from sspec.builtin_tools import (
    apply_patch,
    ask,
    fileinfo,
    mdtoc,
    now,
    pack_zip,
    prompt,
    treesitter,
    view_tree,
    write,
)


@click.group()
def tool() -> None:
    """Builtin development tools."""
    pass


# Register tools (manual for now, clear and explicit)
apply_patch.register_command(tool)
pack_zip.register_command(tool)
view_tree.register_command(tool)
fileinfo.register_command(tool)
write.register_command(tool)
mdtoc.register_command(tool)
now.register_command(tool)
ask.register_command(tool)
treesitter.register_command(tool)
prompt.register_command(tool)
````
========== END FILE ==========

========== BEGIN FILE CHUNK ==========
---
label: .\src\sspec\cli.py:L1-L50
path: src/sspec/cli.py
range: L1-L50
kind: file-chunk
content_format: fenced
fence: '````'
---
````
"""sspec CLI - main entry point."""

import click
from rich.console import Console

from sspec.builtin_tools import ask
from sspec.commands import change, cmd, doc, howto, project, request, skill, tmp, tool
from sspec.core import configure_stdio_error_fallback

configure_stdio_error_fallback()

console = Console()


@click.group(invoke_without_command=True)
@click.pass_context
@click.version_option()
def main(ctx: click.Context) -> None:
    """sspec - Lightweight AI collaboration spec for solo/small projects."""
    if ctx.invoked_subcommand is None:
        from sspec.core import find_sspec_root

        if find_sspec_root():
            ctx.invoke(project.status)
        else:
            click.echo(ctx.get_help())


# Register command groups
main.add_command(project.project)
main.add_command(change.change)
main.add_command(howto.howto)
main.add_command(skill.skill)
main.add_command(request.request)
main.add_command(doc.doc)
main.add_command(ask.ask_group)
main.add_command(cmd.cmd)
main.add_command(tool.tool)
main.add_command(tmp.tmp)


if __name__ == '__main__':
    main()
````
========== END FILE CHUNK ==========
