Osama Khalil Developer Resources
Content API
A read-only JSON API over everything this site publishes. No key, no signup, no rate limit to negotiate. It is the same content the pages show, shaped for a program instead of a reader.
curl https://osama.me/api/v1 # every endpoint, described
curl https://osama.me/api/v1/profile # who I am, contact, links
curl https://osama.me/api/v1/events # every event I have run
curl https://osama.me/api/v1/posts/how-i-built-a-40k-design-community-in-mena
curl "https://osama.me/api/v1/search?q=design%20battlefield"The full contract lives in an OpenAPI 3.1 document at /openapi.json. Every operation has a unique operationId, a typed response schema, and a description, so it drops straight into an LLM function-calling setup. Errors are always JSON, never an HTML page:
{
"error": {
"code": "not_found",
"message": "No event exists with the slug \"nope\".",
"resolution": "List everything available at https://osama.me/api/v1/events.",
"status": 404,
"documentation_url": "https://osama.me/openapi.json"
}
}MCP server for this site
The same content as native tools, over the Model Context Protocol. Streamable HTTP transport, JSON-RPC 2.0 on POST, no authentication. Point any MCP client at it:
{
"mcpServers": {
"osama-me": {
"type": "http",
"url": "https://osama.me/api/mcp"
}
}
}Thirteen read-only tools: get_profile, list_work, list_initiatives, list_products, list_projects, list_events, get_event, list_posts, get_post, list_media, list_pages, get_page, and search_content. Every page is also exposed as an MCP resource. Discovery lives at /.well-known/mcp.json, and the capability index at /.well-known/agent-skills/index.json.
Other MCP servers
Beyond this site's own server above, one more Model Context Protocol endpoint you can connect an AI client to.
Machine-readable files
Stable URLs. None of them require authentication, and all of them are safe to poll.
Markdown content negotiation
Every public page here answers on one URL with two representations: HTML for browsers, Markdown for agents. The implementation follows acceptmarkdown.com and RFC 9110 section 12.5.1.
Ask for Markdown
curl -H "Accept: text/markdown" https://osama.me/
curl -H "Accept: text/markdown" https://osama.me/blog
Or add .md to any URL
curl https://osama.me/index.md
curl https://osama.me/events/farid-omara-in-amman.md
curl "https://osama.me/about?mode=agent"Scoped context files exist for the busy areas: /developers/llms.txt, /blog/llms.txt, and /events/llms.txt. Markdown and 406 responses carry Vary: Accept. HTML responses advertise their Markdown sibling with a Link: rel="alternate" header. An Accept header this site cannot satisfy gets a 406 Not Acceptable that lists what is available, rather than a silent fallback.
Experiments and prototypes
The running experiments, each on its own osama.me subdomain, are listed on The Lab: a Three.js games portal, a Claude usage tracker, a booking app, and Halulu is Hungry.
Something here broken or missing? Email ok@osama.me.
