{"id":28469849,"url":"https://github.com/answerdotai/toolslm","last_synced_at":"2026-03-08T05:01:56.905Z","repository":{"id":237735979,"uuid":"795146857","full_name":"AnswerDotAI/toolslm","owner":"AnswerDotAI","description":"Tools to make language models a bit easier to use","archived":false,"fork":false,"pushed_at":"2026-02-23T01:59:24.000Z","size":792,"stargazers_count":65,"open_issues_count":4,"forks_count":14,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-02-23T09:27:05.027Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://answerdotai.github.io/toolslm/","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AnswerDotAI.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-05-02T17:13:51.000Z","updated_at":"2026-02-23T01:58:46.000Z","dependencies_parsed_at":"2024-07-20T05:41:26.605Z","dependency_job_id":"d9ea00e2-9e2c-499e-acfb-7e6565ef2b75","html_url":"https://github.com/AnswerDotAI/toolslm","commit_stats":null,"previous_names":["jph00/lmtools","answerdotai/toolslm","answerdotai/lmtools","answerdotai/lmtool"],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/AnswerDotAI/toolslm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnswerDotAI%2Ftoolslm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnswerDotAI%2Ftoolslm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnswerDotAI%2Ftoolslm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnswerDotAI%2Ftoolslm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AnswerDotAI","download_url":"https://codeload.github.com/AnswerDotAI/toolslm/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnswerDotAI%2Ftoolslm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30246626,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"online","status_checked_at":"2026-03-08T02:00:06.215Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-07T09:08:48.234Z","updated_at":"2026-03-08T05:01:56.893Z","avatar_url":"https://github.com/AnswerDotAI.png","language":"Jupyter Notebook","readme":"# toolslm\n\n\n\u003c!-- WARNING: THIS FILE WAS AUTOGENERATED! DO NOT EDIT! --\u003e\n\nThis is a work in progress…\n\n## Install\n\n``` sh\npip install toolslm\n```\n\n## How to use\n\n### Context creation\n\ntoolslm has some helpers to make it easier to generate XML context from\nfiles, for instance\n[`folder2ctx`](https://AnswerDotAI.github.io/toolslm/xml.html#folder2ctx):\n\n``` python\nprint(folder2ctx('samples', prefix=False, file_glob='*.py'))\n```\n\n    \u003cdocuments\u003e\u003cdocument index=\"1\"\u003e\u003csrc\u003e\n    samples/sample_core.py\n    \u003c/src\u003e\u003cdocument-content\u003e\n    import inspect\n    empty = inspect.Parameter.empty\n    models = 'claude-3-opus-20240229','claude-3-sonnet-20240229','claude-3-haiku-20240307'\n    \u003c/document-content\u003e\u003c/document\u003e\u003c/documents\u003e\n\nJSON doesn’t map as nicely to XML as the `ft` data structure from\n`fastcore.xml`, but for simple XML trees it can be convenient. The\n[`json_to_xml`](https://AnswerDotAI.github.io/toolslm/xml.html#json_to_xml)\nfunction handles that conversion:\n\n``` python\na = dict(surname='Howard', firstnames=['Jeremy','Peter'],\n         address=dict(state='Queensland',country='Australia'))\nprint(json_to_xml(a, 'person'))\n```\n\n    \u003cperson\u003e\n      \u003csurname\u003eHoward\u003c/surname\u003e\n      \u003cfirstnames\u003e\n        \u003citem\u003eJeremy\u003c/item\u003e\n        \u003citem\u003ePeter\u003c/item\u003e\n      \u003c/firstnames\u003e\n      \u003caddress\u003e\n        \u003cstate\u003eQueensland\u003c/state\u003e\n        \u003ccountry\u003eAustralia\u003c/country\u003e\n      \u003c/address\u003e\n    \u003c/person\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanswerdotai%2Ftoolslm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanswerdotai%2Ftoolslm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanswerdotai%2Ftoolslm/lists"}